Kann ich ein Anki-Deck aus einer CSV-Datei erstellen?

31

Kann ich meine CSV-Datei in ein Anki-Deck konvertieren? Ich kann im Programm keine Optionen finden.

Thalecress
quelle

Antworten:

26

In der Desktop- Version von Anki können Sie " Text, der durch Tabulatoren oder Semikolons getrennt ist " importieren . Verwenden Sie diese Option, um Ihre CSV-Datei auszuwählen. Nach dem Öffnen der Datei wird ein Dialogfeld angezeigt, in dem Sie anpassen können, wie Ihre Daten importiert werden. Eine der Einstellungen ist eine Option, mit der Sie das Trennzeichen auswählen können. Ändern Sie dies in ein Komma, und es sollte für Sie funktionieren.

Screenshot: Importieren einer CSV-Datei in Anki

Nispio
quelle
3
Außerdem müssen Sie eine Codierung für UTF-8
1
Kann es verwendet werden, um neue Karten in ein vorhandenes Deck einzufügen?
Septagram
Wie hast du das gemacht? Ich habe ein Deck mit "Note ID". Es wird jedoch nicht in den Zuordnungsoptionen angezeigt: "Vorne", "Hinten" oder "Ignorieren".
Kaz
8

Eine andere Möglichkeit zum .apkgprogrammgesteuerten Generieren von Dateien durch Wiederverwenden der Desktopversion mit Python. Erweitern:

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

und starte das Skript (natürlich solltest du es an deine Bedürfnisse anpassen):

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)

Solange Sie halten note.guidund model['id']gleichen Sie DB mit importieren können aktualisieren Karten ohne Verlust Fortschritt !

Meine Produktionscode-Beispiele:

gavenkoa
quelle