Bir .CSV dosyasından bir Anki destesi oluşturabilir miyim?


31

CSV dosyamı bir Anki destesine dönüştürebilir miyim? Programda hiçbir seçenek bulamıyorum.

Yanıtlar:


26

Masaüstü Anki sürümü, " Sekmeler veya noktalı virgüllerle ayırarak metni " içe aktarmanıza izin verir . CSV dosyanızı seçmek için bu seçeneği kullanın. Dosyayı açtıktan sonra, verilerinizin nasıl içe aktarılacağını özelleştirmenize izin veren bir iletişim kutusu sunulur. Ayarlardan biri, sınırlayıcıyı seçmenize izin veren bir seçenektir. Bunu virgülle değiştirin ve sizin için işe yaramalı.

Ekran görüntüsü: CSV dosyasını Anki'ye aktarma


3
Ayrıca UTF-8 için bir kodlama kurmak zorunda

1
Mevcut desteye yeni kartlar yerleştirmek için kullanılabilir mi?
Septagram

Bunu nasıl yaptın? "Not Kimliği" olan bir destem var. Ancak, haritalama seçeneklerinde görünmüyor: sadece Ön, Arka veya Yoksay.
Kaz

8

.apkgMasaüstü sürümünü Python ile yeniden kullanarak programlı bir şekilde dosya oluşturmanın başka bir yolu . uzatın:

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

ve komut dosyasını çalıştırın (elbette ihtiyaçlarınıza göre uyarlamanız gerekir):

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)

Devamlı note.guidve model['id']aynı kaldığınız sürece , ilerleme kaydetmeden DB'yi güncelleme kartlarıyla içe aktarabilirsiniz !

Üretim kodum örnekleri:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.