Могу ли я конвертировать мой CSV-файл в колоду Anki? Я не могу найти какие-либо варианты в программе.
2 ответа
Настольная версия Anki позволит вам импортировать « текст, разделенный табуляцией или точкой с запятой ». Используйте эту опцию, чтобы выбрать файл CSV. После открытия файла вам будет предложено диалоговое окно, которое позволит вам настроить импорт ваших данных. Одной из настроек является опция, позволяющая выбрать разделитель. Измените это на запятую, и это должно работать для вас.
Еще один способ сгенерировать файл .apkg
программно путем повторного использования настольной версии с Python. Расширение:
PYTHONPATH=/usr/share/anki: python ...
и запустите скрипт (конечно, вы должны адаптировать его к вашим потребностям):
import anki
from anki.exporting import AnkiPackageExporter
collection = anki.Collection(os.path.join(TMPDIR, 'collection.anki2'))
deck_id = collection.decks.id(FBASENAME + "_deck")
deck = collection.decks.get(deck_id)
model = collection.models.new(FBASENAME + "_model")
model['tags'].append(FBASENAME + "_tag")
model['did'] = deck_id
model['css'] = """
.card {
font-family: arial;
font-size: 20px;
text-align: center;
color: black;
background-color: white;
}
.from {
font-style: italic;
}
"""
collection.models.addField(model, collection.models.newField('en'))
collection.models.addField(model, collection.models.newField('ru'))
tmpl = collection.models.newTemplate('en -> ru')
tmpl['qfmt'] = '<div class="from">{{en}}</div>'
tmpl['afmt'] = '{{FrontSide}}\n\n<hr id=answer>\n\n{{ru}}'
collection.models.addTemplate(model, tmpl)
tmpl = collection.models.newTemplate('ru -> en')
tmpl['qfmt'] = '{{ru}}'
tmpl['afmt'] = '{{FrontSide}}\n\n<hr id=answer>\n\n<div class="from">{{en}}</div>'
collection.models.addTemplate(model, tmpl)
model['id'] = 12345678 # essential for upgrade detection
collection.models.update(model)
collection.models.setCurrent(model)
collection.models.save(model)
note = anki.notes.Note(collection, model)
note['en'] = "hello"
note['ru'] = u"[heləʊ]\nint. привет"
note.guid = "xxx1"
collection.addNote(note)
note = collection.newNote()
note['en'] = "bye"
note['ru'] = u"[baɪ]\nint. пока"
note.guid = "xxx2"
collection.addNote(note)
export = AnkiPackageExporter(collection)
export.exportInto(FONAME)
Пока вы сохраняете note.guid
и model['id']
одинаковыми, вы можете импортировать БД с обновлением карт без потери прогресса !
- Любой способ собрать apkg из командной строки без графического интерфейса?
- Возможно ли объединить улучшения и исправления с картами во время импорта apkg без потери прогресса?
Примеры моего производственного кода: