"标注"是kindle很好用的一个功能。阅读时只管标注,一段时间也读了不少的书,当我想要将所有的标注移植入印象笔记的时候,发现这个文件里的内容已经变得很多,且各个书标记的内容互相穿插,需要一点一点搬运过去,这实在是太麻烦了。
将kindle中的My Clippings.txt文件复制到电脑上,打开后是这个样子的。非常的杂乱无章,我肯定想将月亮和六便士的标注放在一起,而如果我在这本书中标注了100句话,那我就要进行100次的复制粘贴操作,才能将它们汇聚到印象笔记中。这是无法承受的工作量,需要写个脚本,一键模式完成整理。
根据python字典的可变性,将书名都提取出来作为key,同一本书的内容作为字符串依次相加,作为最终的值,再依次列出,写入新文件,便可达到目的。
代码在这里,使用了defaultdict,用于初始化字典的value:
# -*- coding:utf-8 -*-
from collections import defaultdict
shinewords = open('cli.txt','r').read().decode('utf-8')
section = shinewords.strip().split("==========\r\n")
books = defaultdict(lambda : "")
for i in section:
try:
i = i.split('\n')
books[i[0]] += i[3]+'\n\n'
#最后一个分割为文档结束符,它并没有前面全部正常
except IndexError:
pass
with open('note.txt','wb') as f:
for i in books:
f.write(i.encode('utf-8') + '\n\n' + books[i].encode('utf-8') + '==========\n')
f.close()
运行之后,生成了新的txt文件,效果如图,感觉甚是清爽。