整体思路

  • 目标:将Kindle中的每本书的笔记标注单独提取出保存为一个Markdown文件

其中检测KIndle是否已经正常插入的判断方法:

  • 思路1:读取媒介挂载记录
  • 思路2:直接判断挂载地址是否存在

实现的时候用的第二个思路,Kindle的挂载路径为/media/当前用户名/Kindle,只需判断这个地址是否存在且能进入正常进行读取操作即可

其中对于信息提取,My Clippings.txt中内容格式如下

书名 作者
标注/笔记所在位置 时间
空行
笔记/标注内容
==========

每一条笔记都由十个=号进行分割。这样就很容易将内容分开了。

代码实现

#!/usr/bin/env python
# encoding: utf-8import os
import getpassclass KindleExtract():def __init__(self):passdef kindle_check(self):"""检测Kindle的Clippings文件"""username = getpass.getuser()kindle_path = ""try:if 'Kindle' in os.listdir("/media/"+username):kindle_path = "/media/"+username+"/Kindle"print u"检测到您的Kindle"else:print u"未检测到您的Kindle设备,请确认插入正确再运行本脚本"exit(1)if "My Clippings.txt" in os.listdir(kindle_path+"/documents"):kindle_path = kindle_path+"/documents/My Clippings.txt"print u"检测到标注信息所在文件"else:print u"未检测到标注信息文件"exit(2)except Exception, e:print ereturn kindle_pathdef get_data(self,kindle_path=None):result ={}book=[]item=[]with open(kindle_path) as f:for i,cont in enumerate(f.readlines()):cont = cont.strip()if "==========" == cont:book.append(item)item = []continue# if cont != "":item.append(cont)caption = []for i in book:caption.append(i[0])caption = set(caption)tmp ={}for i in caption:tmp[i] = []for i in book:tmp[i[0]].append(i[3])for i in tmp:c = str(i).split(" ")title = c[0]print titleauthor = " ".join(c[1:])with open(i.replace("/","·")+".md","w") as out_file:out_file.write("# 书名:《《"+title+"》》\n")out_file.write("> 作者:《《"+author+"\n")for id,item in enumerate(tmp[i]):out_file.write("+ %s%s\n"%(id,item))if __name__ == "__main__":ke = KindleExtract()ke.get_data(kindle_path="clip.txt")

诸多不完善

转载于:https://www.cnblogs.com/taceywong/p/5460215.html

提取KIndle中每本书的笔记并单独保存相关推荐

  1. 视频音频提取器推荐:快速提取视频中的音频!

    视频中的音频可以用于很多用途,比如制作配乐.音频剪辑等.但是,许多人并不知道如何将视频中的音频提取出来.如果您也是这样的情况,那么本文为您介绍一个简单易用的视频音频提取器:. 它是一个免费的在线工具, ...

  2. keras提取模型中的某一层_Tensorflow笔记:高级封装——Keras

    前言 之前在<Tensorflow笔记:高级封装--tf.Estimator>中介绍了Tensorflow的一种高级封装,本文介绍另一种高级封装Keras.Keras的特点就是两个字--简 ...

  3. kindle中html笔记,如何将kindle阅读器中的笔记、标注导出。,这几步你要了解

    在Kindle上读过书后,却不知道怎么将阅读过程中做的笔记.标注导出?下面向大家介绍一种将kindle阅读器中的笔记导出的方法. 工具/材料 kindle 数据线一条 可上网电脑一台 印象笔记账号(可 ...

  4. Opencv学习笔记(二) 提取图像中的水平线和垂直线

    提取图像中的水平线和垂直线属于基础的形态学操作的应用,原理:根据要提取图形来定义一个特定的结构元素,然后以这个结构相素去遍历图像,进行一系列形态学操作,以此过滤掉其他特征的图形,达到提取的效果. 示例 ...

  5. 批量提取Word中的图片

    我在写学习笔记的时候喜欢用word或Evernote直接排版做笔记,好处是快速方便,直接截图插入.但是再刊载在CSND上的时候就有麻烦了,因为不能直接粘贴图片,只能上传到相册中再选取.这时我又不愿意一 ...

  6. Win10 自带【屏幕录制】功能(win + G)----(附带:录屏时没有声音,声音不清楚 问题解决;---提取视频中的音频)

    目录 ■前言 ■各种工具的快捷键,以及使用 1.Win+V 笔记 2.Win+G 进入游戏模式 (即,运行Xbox Game Bar) 3.Win+Tab 虚拟桌面 4.Win+Shift+S 截屏工 ...

  7. 将kindle中的书导入群晖DS218Play

    在kindle中也有550本书了,为了在其他设备上也能读(比如boox),决定将kindle paperwhite中的书导出成pdf或mobi,通过ftp上传到群晖DS218Play中 现将具体步骤写 ...

  8. PyTorch中文文档阅读笔记-day1

    写在开头(重复的) 1.课程来源:torch中文教程1.7版. torch中文文档. 2.笔记目的:个人学习+增强记忆+方便回顾 3.时间:2021年4月29日 4.仅作为个人笔记,如有需要请务必按照 ...

  9. 【视频转PDF】Gleamoe Peanut 2023,轻松提取视频中的幻灯片!

    目录 Gleamoe Peanut 2023:==轻松提取视频中的幻灯片==,让学习与研究更高效 一.简介 软件特点 软件优点 二.软件界面 三.安装与使用 四.技术细节 处理逻辑 定位幻灯片的两种方 ...

最新文章

  1. 01 C语言程序设计--01 C语言基础--第3章 基本数据类型01
  2. Java 8 - 正确高效的使用并行流
  3. 推荐一款移动端的web UI控件 -- mobiscroll
  4. 【TypeScript】TypeScript 学习 4——模块
  5. tlc5620输出三角波流程图_[笔记].串型DAC TLC5620生成锯齿波、三角波实验,Verilog版本...
  6. C# 操作iis6、iis7 301
  7. Oracle 根据dbf文件的数据恢复
  8. 一、万用表使用方法图解
  9. 使用IP地址连接网络打印机
  10. 天下难事始于易,天下大事始于细。
  11. ADSP21489 Target halted due to software breakpoint but no breakpoint found at address: 0x208c0b6 ()
  12. jQuery 实现动态粒子特效,太美了!!!
  13. java输入日期判断这天是周几
  14. linux下emmc自动格式化和自动挂载
  15. Linux音频驱动(1)
  16. 阿里极客公益——1000+阿里技术专家来回答你的问题或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里1000+位技术专家来云栖问答为你解答技
  17. 歌尔股份002241
  18. 三张图秒懂Redis集群设计原理
  19. 刷榜思路少?顶级中文NLP比赛解题方法直播来了!
  20. 全球与中国无人机数据处理软件市场深度研究分析报告

热门文章

  1. 众国产机纷纷后置指纹,而金立选择与苹果三星同阵营
  2. 联想台式电脑计算机打不开,lenovo电脑开不了机的三种解决方法
  3. 练习---景点查询系统/旅游查询系统
  4. 使用Arduino开发板连接模拟pH传感器
  5. Kotlin_高阶函数详解
  6. JDK 16 正式发布!程序员:追不上了...
  7. FANUC机器人_通过ROBOGUIDE从零开始做一个离线仿真项目(1)
  8. 服务器间文件同步工具Syncthing配置注意点汇总
  9. 人工智能导论实训 第五章 AlphaBeta剪枝算法求解博弈树最优选择
  10. 前端系列——vue2+高德地图web端开发(行政区边界绘制)