Python中如何批量创建数据到anki卡片?
无意中看到一个大佬写的这个插件 https://github.com/ninja33/anki-dict-helper
不知道他是如何用代码创建数据到 anki 的卡片上, 是调用 anki 客户端的接口还是怎么处理的?
会 pyhon 的大佬可以帮看看如何实现的吗? 我也想批量将一些 古诗宋词一类的内容批量创建到 anki 卡片给小朋友 使用,但是 python 忘光了... 现在还是 php 和 go 用得比较多。
Python中如何批量创建数据到anki卡片?
2 回复
要批量创建数据到Anki卡片,最直接的方式是使用genanki库。下面是一个完整的示例:
import genanki
import pandas as pd
# 1. 定义卡片模型
my_model = genanki.Model(
1607392319, # 随机但唯一的ID
'Simple Model',
fields=[
{'name': 'Question'},
{'name': 'Answer'},
],
templates=[
{
'name': 'Card 1',
'qfmt': '{{Question}}',
'afmt': '{{FrontSide}}<hr id="answer">{{Answer}}',
},
])
# 2. 创建牌组
my_deck = genanki.Deck(
2059400110, # 随机但唯一的ID
'我的牌组')
# 3. 批量添加数据(这里用列表,你也可以从CSV/Excel读取)
data = [
("Python中如何定义函数?", "使用def关键字"),
("列表推导式是什么?", "[x for x in iterable]"),
("如何打开文件?", "使用open()函数"),
]
# 4. 批量创建笔记并添加到牌组
for question, answer in data:
note = genanki.Note(
model=my_model,
fields=[question, answer])
my_deck.add_note(note)
# 5. 生成.apkg文件
genanki.Package(my_deck).write_to_file('my_deck.apkg')
从CSV文件批量导入:
# 如果数据在CSV文件中
df = pd.read_csv('data.csv')
for _, row in df.iterrows():
note = genanki.Note(
model=my_model,
fields=[row['问题'], row['答案']])
my_deck.add_note(note)
关键点:
- 每个模型和牌组都需要唯一的ID(可以用随机数生成器)
- 字段名和模板要对应好
- 生成的
.apkg文件可以直接导入Anki
一句话总结:用genanki库构建模型和牌组,循环数据批量创建笔记即可。
翻了一个晚上 终于找到了
https://github.com/FooSoft/anki-connect
这个软件用的人这么少吗? 不科学

