我手机里存了三百多张截图,全是刷到的好内容。从初代R1到现在的各种笔记App,学了忘、忘了学的循环从来没断过。
最难受的是,我知道该用Anki。那些回忆算法确实管用。可每次要手动做一张卡片,从笔记里摘重点,再复制粘贴,格式还得调。坚持了三天,卡片数量不到一百张,人就累了。
后来我想通了。既然天天写Python,为什么不写个脚本,让代码帮我生成Anki卡片?
我决定从最简单的开始。只要给Python一个文本文件,它就能生成可以直接导入Anki的卡片包。
Anki的卡片格式其实挺直白。它要的是一个csv文件,每行是一张卡片,用逗号隔开问题和答案。再给个列名文件,告诉Anki第一列是问题,第二列是答案。
我写了个函数,读入我的笔记文本。笔记每一行是一句话,我规定用两个星号括起来的部分作为问题,剩下的做答案。比如:
Python的列表推导式 可以这样写: [x2 for x in range(10)]
代码把文本拆开,写成两列。十几行代码就搞定。
import re import csv
def make_cards(text):
lines = text.strip().split('\n')
cards = []
for line in lines:
match = re.match(r'\\(.+?)\\(.)', line)
if match:
question = match.group(1)
answer = match.group(2).strip()
cards.append([question, answer])
return cards
我把这个脚本跑起来,贴进去一篇之前收藏的读书笔记。二十多句话,不到一秒就生成了二十二张卡片。我把csv文件导入Anki,直接开始复习。
那种感觉很奇怪。之前做一张卡片要一分钟,现在几百张卡片也就是几秒的事。记忆这件事,终于从“体力活”变成了“脑力活”。
后来我发现,光有脚本还不够。得让脚本好用,得有个界面。我用Python的Tkinter写了个弹窗,复制笔记进去,点生成,卡片文件就躺在桌面上。
最让我意外的是,这个简单的工具,让我的学习习惯变了。以前看到好内容,收藏起来就算了。现在多了一个步骤,整理成“加粗问题+解释”的格式。这个整理的过程,本身就是在加深理解。
朋友圈有人问我,你写这个花了多久?我说前后不到两小时。两小时换来了以后每次复习都能省下的时间。
你有没有那种感觉?学的东西太多,记住的太少?其实不是记忆力差,是复习的方式太原始了。
让Python帮你做卡片,把力气花在真正该花的地方。学习内容,然后让代码帮你记住。
代码放在Github上,不到五十行。如果你也学过Python,改改就能用。如果没学过,用它启动你的第一个练手项目也挺好。
记住一个道理:工具的价值,不是帮你做所有事。而是把重复的事做掉,让你能集中精神做重要的事。学了忘,忘了学,中间缺的只是一个生成卡片的脚本。