提取KIndle中每本书的笔记并单独保存
整体思路
- 目标:将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中每本书的笔记并单独保存相关推荐
- 视频音频提取器推荐:快速提取视频中的音频!
视频中的音频可以用于很多用途,比如制作配乐.音频剪辑等.但是,许多人并不知道如何将视频中的音频提取出来.如果您也是这样的情况,那么本文为您介绍一个简单易用的视频音频提取器:. 它是一个免费的在线工具, ...
- keras提取模型中的某一层_Tensorflow笔记:高级封装——Keras
前言 之前在<Tensorflow笔记:高级封装--tf.Estimator>中介绍了Tensorflow的一种高级封装,本文介绍另一种高级封装Keras.Keras的特点就是两个字--简 ...
- kindle中html笔记,如何将kindle阅读器中的笔记、标注导出。,这几步你要了解
在Kindle上读过书后,却不知道怎么将阅读过程中做的笔记.标注导出?下面向大家介绍一种将kindle阅读器中的笔记导出的方法. 工具/材料 kindle 数据线一条 可上网电脑一台 印象笔记账号(可 ...
- Opencv学习笔记(二) 提取图像中的水平线和垂直线
提取图像中的水平线和垂直线属于基础的形态学操作的应用,原理:根据要提取图形来定义一个特定的结构元素,然后以这个结构相素去遍历图像,进行一系列形态学操作,以此过滤掉其他特征的图形,达到提取的效果. 示例 ...
- 批量提取Word中的图片
我在写学习笔记的时候喜欢用word或Evernote直接排版做笔记,好处是快速方便,直接截图插入.但是再刊载在CSND上的时候就有麻烦了,因为不能直接粘贴图片,只能上传到相册中再选取.这时我又不愿意一 ...
- Win10 自带【屏幕录制】功能(win + G)----(附带:录屏时没有声音,声音不清楚 问题解决;---提取视频中的音频)
目录 ■前言 ■各种工具的快捷键,以及使用 1.Win+V 笔记 2.Win+G 进入游戏模式 (即,运行Xbox Game Bar) 3.Win+Tab 虚拟桌面 4.Win+Shift+S 截屏工 ...
- 将kindle中的书导入群晖DS218Play
在kindle中也有550本书了,为了在其他设备上也能读(比如boox),决定将kindle paperwhite中的书导出成pdf或mobi,通过ftp上传到群晖DS218Play中 现将具体步骤写 ...
- PyTorch中文文档阅读笔记-day1
写在开头(重复的) 1.课程来源:torch中文教程1.7版. torch中文文档. 2.笔记目的:个人学习+增强记忆+方便回顾 3.时间:2021年4月29日 4.仅作为个人笔记,如有需要请务必按照 ...
- 【视频转PDF】Gleamoe Peanut 2023,轻松提取视频中的幻灯片!
目录 Gleamoe Peanut 2023:==轻松提取视频中的幻灯片==,让学习与研究更高效 一.简介 软件特点 软件优点 二.软件界面 三.安装与使用 四.技术细节 处理逻辑 定位幻灯片的两种方 ...
最新文章
- 01 C语言程序设计--01 C语言基础--第3章 基本数据类型01
- Java 8 - 正确高效的使用并行流
- 推荐一款移动端的web UI控件 -- mobiscroll
- 【TypeScript】TypeScript 学习 4——模块
- tlc5620输出三角波流程图_[笔记].串型DAC TLC5620生成锯齿波、三角波实验,Verilog版本...
- C# 操作iis6、iis7 301
- Oracle 根据dbf文件的数据恢复
- 一、万用表使用方法图解
- 使用IP地址连接网络打印机
- 天下难事始于易,天下大事始于细。
- ADSP21489 Target halted due to software breakpoint but no breakpoint found at address: 0x208c0b6 ()
- jQuery 实现动态粒子特效,太美了!!!
- java输入日期判断这天是周几
- linux下emmc自动格式化和自动挂载
- Linux音频驱动(1)
- 阿里极客公益——1000+阿里技术专家来回答你的问题或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里1000+位技术专家来云栖问答为你解答技
- 歌尔股份002241
- 三张图秒懂Redis集群设计原理
- 刷榜思路少?顶级中文NLP比赛解题方法直播来了!
- 全球与中国无人机数据处理软件市场深度研究分析报告
热门文章
- 众国产机纷纷后置指纹,而金立选择与苹果三星同阵营
- 联想台式电脑计算机打不开,lenovo电脑开不了机的三种解决方法
- 练习---景点查询系统/旅游查询系统
- 使用Arduino开发板连接模拟pH传感器
- Kotlin_高阶函数详解
- JDK 16 正式发布!程序员:追不上了...
- FANUC机器人_通过ROBOGUIDE从零开始做一个离线仿真项目(1)
- 服务器间文件同步工具Syncthing配置注意点汇总
- 人工智能导论实训 第五章 AlphaBeta剪枝算法求解博弈树最优选择
- 前端系列——vue2+高德地图web端开发(行政区边界绘制)