क्या मैं .CSV फ़ाइल से Anki डेक बना सकता हूँ?


31

क्या मैं अपनी CSV फ़ाइल को Anki डेक में बदल सकता हूँ? मुझे कार्यक्रम में कोई विकल्प नहीं मिल रहा है।

जवाबों:


26

डेस्कटॉप Anki संस्करण आपको " टैब या अर्धविराम से अलग पाठ " आयात करने की अनुमति देगा । अपनी CSV फ़ाइल चुनने के लिए इस विकल्प का उपयोग करें। फ़ाइल खोलने के बाद, आपको एक संवाद के साथ प्रस्तुत किया जाएगा जो आपको अनुकूलित करने की अनुमति देता है कि आपका डेटा कैसे आयात किया जाता है। सेटिंग्स में से एक एक विकल्प है जो आपको सीमांकक चुनने की सुविधा देता है। इसे अल्पविराम में बदलें, और यह आपके लिए काम करना चाहिए।

स्क्रीनशॉट: Anki में एक CSV फ़ाइल आयात करना


3
इसके अलावा आपको UTF-8 के लिए एन्कोडिंग स्थापित करना होगा

1
क्या इसका उपयोग मौजूदा डेक में नए कार्ड डालने के लिए किया जा सकता है?
सेप्टाग्राम

आपने वह कैसे किया? मेरे पास "नोट आईडी" के साथ एक डेक है। फिर भी, यह मैपिंग विकल्पों में प्रकट नहीं होता है: सिर्फ फ्रंट, बैक या इग्नोर।
कज़

8

.apkgपायथन के साथ डेस्कटॉप संस्करण का पुन: उपयोग करके प्रोग्रामेटिक रूप से फ़ाइल जनरेट करने का दूसरा तरीका । बढ़ाएँ:

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

और स्क्रिप्ट चलाएं (बेशक आपको इसे अपनी आवश्यकताओं के अनुकूल बनाना चाहिए):

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)

जब तक आप रखते हैं note.guidऔर model['id']आप प्रगति खोने के बिना अद्यतन कार्ड के साथ DB आयात कर सकते हैं !

मेरे उत्पादन कोड उदाहरण:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.