Posso converter meu arquivo CSV em um deck Anki? Não consigo encontrar nenhuma opção no programa.
Posso converter meu arquivo CSV em um deck Anki? Não consigo encontrar nenhuma opção no programa.
Respostas:
A versão Anki da área de trabalho permitirá importar " Texto separado por guias ou ponto e vírgula ". Use esta opção para escolher seu arquivo CSV. Após abrir o arquivo, você verá uma caixa de diálogo que permite personalizar como os dados são importados. Uma das configurações é uma opção que permite escolher o delimitador. Altere isso para uma vírgula e deve funcionar para você.
Outra maneira de gerar .apkg
arquivos programaticamente, reutilizando a versão da área de trabalho com o Python. Ampliar:
PYTHONPATH=/usr/share/anki: python ...
e execute o script (é claro que você deve adaptá-lo às suas necessidades):
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)
Contanto que você mantenha note.guid
e model['id']
mesmo você pode importar DB com atualizar cartões sem perder o progresso !
Meus exemplos de código de produção: