Чи можна створити колоду Anki з файлу .CSV?


31

Чи можу я перетворити свій файл CSV в колоду Anki? Я не можу знайти жодної опції в програмі.

Відповіді:


26

Настільна версія Анкі дозволить вам імпортувати " Текст, розділений вкладками або крапками з комою ". За допомогою цієї опції виберіть файл CSV. Після відкриття файлу вам відкриється діалогове вікно, яке дозволяє налаштувати спосіб імпорту ваших даних. Одне з параметрів - це параметр, який дозволяє вибрати роздільник. Змініть це на коми, і воно повинно працювати для вас.

Знімок екрана: імпорт файлу CSV в Anki


3
Також вам потрібно встановити кодування для UTF-8

1
Чи можна його використовувати для вставлення нових карт у існуючу колоду?
Септаграма

Як ти це зробив? У мене колодка з "ID нотатки". Однак він не відображається у виборі відображення: лише передній, задній або ігнорувати.
Каз

8

Ще один спосіб .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']тим самим, ви можете імпортувати БД з оновленнями карт, не втрачаючи прогресу !

Приклади мого виробничого коду:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.