Tôi có thể tạo một sàn Anki từ tệp .CSV không?


31

Tôi có thể chuyển đổi tệp CSV của mình thành một sàn Anki không? Tôi không thể tìm thấy bất kỳ tùy chọn trong chương trình.

Câu trả lời:


26

Phiên bản Anki trên máy tính để bàn sẽ cho phép bạn nhập " Văn bản được phân tách bằng các tab hoặc dấu chấm phẩy ". Sử dụng tùy chọn này để chọn tệp CSV của bạn. Sau khi mở tệp, bạn sẽ thấy một hộp thoại cho phép bạn tùy chỉnh cách nhập dữ liệu của mình. Một trong các cài đặt là một tùy chọn cho phép bạn chọn dấu phân cách. Thay đổi dấu phẩy này thành dấu phẩy và nó sẽ phù hợp với bạn.

Ảnh chụp màn hình: Nhập tệp CSV vào Anki


3
Ngoài ra, bạn phải thiết lập mã hóa cho UTF-8

1
Nó có thể được sử dụng để chèn thẻ mới vào bộ bài hiện tại không?
Septagram

Cậu đã làm thế nào vậy? Tôi có một bộ bài với "Note ID". Tuy nhiên, nó không xuất hiện trong các lựa chọn ánh xạ: chỉ Front, Back hoặc Ignore.
Kaz

8

Một cách khác để tạo .apkgtệp theo chương trình bằng cách sử dụng lại phiên bản máy tính để bàn với Python. Mở rộng:

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

và chạy tập lệnh (tất nhiên bạn nên điều chỉnh nó theo nhu cầu của mình):

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)

Miễn là bạn giữ note.guidmodel['id']tương tự, bạn có thể nhập DB bằng cách cập nhật thẻ mà không mất tiến trình !

Ví dụ mã sản xuất của tôi:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.