一、前言
作为一个读者,我每年都会读许多电子书,并且喜欢在书中划出精彩的句子。无论是“微信读书”APP还是"多看阅读"APP,它们都提供了便捷的划线保存功能。虽然这些标注可以导出至电脑,但我发现自己很少回头去查看它们。我之前在网上发现了一个将微信读书的书摘转换为Anki的CSV文件的工具,这让人很兴奋。然而,对于多看阅读,我没发现有类似的转换工具。我个人在“多看阅读”上积累了几千条的阅读笔记,如果能将这些笔记高效转换并导入到Anki中,将对我非常有帮助。我尝试过使用GPT-4-32K模型来转换,但经常会遇到小错误。因此,我决定用Python来编写一个小程序,并在此与大家分享。
二、操作流程
1、先从“多看阅读”导出笔记,类似如下格式
2、在桌面新建一个文件夹,然后文件夹中新建一个1.txt文件。把刚才笔记复制进去.
3、新建一个爬虫运行文件,把下面代码输入进去,保存格式.py.
import csv
import re
input_file = '1.txt'
output_csv_file = 'output.csv'
# 正则表达式,用于匹配日期
date_pattern = re.compile(r'^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}')
# 正则表达式,用于匹配仅包含一个单独标点符号的行
# 这里我们匹配任何单个标点符号,可以根据需要添加更多
single_punctuation_pattern = re.compile(r'^[\s]*[.,:;!?\'\"-][\s]*$')
# 读取文本文件,并去除日期行和前后行
with open(input_file, 'r', encoding='utf-8') as txt_file:
lines = txt_file.readlines()
# 去除文件的前两行和最后两行
lines = lines[3:-4]
# 过滤掉空行、日期行和只包含单个标点符号的行
content_lines = [line.strip() for line in lines if line.strip() and
not date_pattern.match(line.strip()) and
not single_punctuation_pattern.match(line.strip())]
# 写入CSV文件
with open(output_csv_file, 'w', newline='', encoding='utf-8') as csv_file:
writer = csv.writer(csv_file)
# 写入内容
for line in content_lines:
writer.writerow([line])
print(f"CSV file '{output_csv_file}' has been created.")
4、运行代码,查看结果。可以对生成csv适当修改后导入anki卡片。
三、总结
我这里生成的csv文件并没有设置多字段,导入卡片可以使用Anki默认的正反面卡片模板。如果你机遇内p t容有其他想法可以写在卡片背诵。我这里的使用场景是将阅读笔记Anki卡片应用于碎片时间替代,有意识提升碎片时间看到信息的质量。我的目标不是利用Anki进行传统的记忆训练,而是作为一种提醒工具,用来回顾那些曾经启发我思考的摘录和文字。我相信,通过查看这些来自不同书籍的深刻内容,我能够在这些零碎时间里获得新的洞见和创意。为了使卡片浏览更加自动化,建议用户启用文本到语音(TTS)功能,并配置卡片内容的自动播放选项。这样的设置将更好的提升学习体验。