Puis-je convertir mon fichier CSV en un deck Anki? Je ne trouve aucune option dans le programme.
Puis-je convertir mon fichier CSV en un deck Anki? Je ne trouve aucune option dans le programme.
Réponses:
La version Anki de bureau vous permettra d'importer "du texte séparé par des tabulations ou des points-virgules ". Utilisez cette option pour choisir votre fichier CSV. Après avoir ouvert le fichier, une boîte de dialogue vous sera présentée qui vous permettra de personnaliser la façon dont vos données sont importées. L'un des paramètres est une option qui vous permet de choisir le délimiteur. Remplacez-le par une virgule, et cela devrait fonctionner pour vous.
Une autre façon de générer un .apkg
fichier par programme en réutilisant la version de bureau avec Python. Étendre:
PYTHONPATH=/usr/share/anki: python ...
et exécutez le script (bien sûr, vous devez l'adapter à vos besoins):
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)
Tant que vous gardez note.guid
et model['id']
même vous pouvez importer des bases de données avec des cartes de mise à jour sans perdre de progression !
Mes exemples de code de production: