Posso creare un deck Anki da un file .CSV?


31

Posso convertire il mio file CSV in un mazzo Anki? Non riesco a trovare alcuna opzione nel programma.

Risposte:


26

La versione desktop di Anki ti permetterà di importare " Testo separato da tabulazioni o punti e virgola ". Usa questa opzione per scegliere il tuo file CSV. Dopo aver aperto il file, ti verrà presentata una finestra di dialogo che ti permetterà di personalizzare il modo in cui i tuoi dati vengono importati. Una delle impostazioni è un'opzione che ti consente di scegliere il delimitatore. Cambia questo in una virgola e dovrebbe funzionare per te.

Schermata: importazione di un file CSV in Anki


3
Inoltre devi impostare una codifica per UTF-8

1
Può essere usato per inserire nuove carte nel mazzo esistente?
Settagramma

Come hai fatto? Ho un mazzo con "ID nota". Tuttavia, non appare nelle scelte di mappatura: solo Front, Back o Ignore.
Kaz

8

Un altro modo per generare .apkgfile a livello di codice riutilizzando la versione desktop con Python. Estendere:

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

ed esegui lo script (ovviamente dovresti adattarlo alle tue esigenze):

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)

Finché continui note.guide lo model['id']stesso puoi importare DB con l' aggiornamento delle carte senza perdere progressi !

I miei esempi di codice di produzione:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.