Bisakah saya membuat dek Anki dari file .CSV?

31

Bisakah saya mengonversi file CSV saya menjadi dek Anki? Saya tidak dapat menemukan opsi dalam program ini.

Thalecress
sumber

Jawaban:

26

Versi desktop Anki akan memungkinkan Anda untuk mengimpor " Teks dipisahkan oleh tab atau titik koma ." Gunakan opsi ini untuk memilih file CSV Anda. Setelah membuka file, Anda akan disajikan dialog yang memungkinkan Anda untuk menyesuaikan cara data Anda diimpor. Salah satu pengaturan adalah opsi yang memungkinkan Anda memilih pembatas. Ubah ini menjadi koma, dan itu akan bekerja untuk Anda.

Tangkapan layar: Mengimpor file CSV ke Anki

nispio
sumber
3
Anda juga harus mengatur penyandian untuk UTF-8
1
Bisakah itu digunakan untuk memasukkan kartu baru ke dalam dek yang ada?
Septagram
Bagaimana Anda melakukannya? Saya memiliki setumpuk dengan "Note ID". Namun, itu tidak muncul dalam pilihan pemetaan: hanya Depan, Belakang atau Abaikan.
Kaz
8

Cara lain untuk menghasilkan .apkgfile secara terprogram dengan menggunakan kembali versi desktop dengan Python. Memperpanjang:

PYTHONPATH=/usr/share/anki: python ...

dan jalankan skrip (tentu saja Anda harus menyesuaikannya dengan kebutuhan Anda):

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)

Selama Anda tetap note.guiddan model['id']sama, Anda dapat mengimpor DB dengan memperbarui kartu tanpa kehilangan kemajuan !

Contoh kode produksi saya:

gavenkoa
sumber