69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
import genanki
|
|
import csv
|
|
import random
|
|
|
|
|
|
# Variablen
|
|
ausgabe_datei = "Problem.apkg"
|
|
csv_datei = "Problem.csv" # Name der CSV-Datei
|
|
|
|
|
|
# Erstelle ein Anki-Deck
|
|
deck_id = 123456789 # Zufällige Zahl, um das Deck eindeutig zu identifizieren
|
|
deck_name = "Langzeit" # Name des Decks
|
|
my_deck = genanki.Deck(deck_id, deck_name)
|
|
|
|
# Definiere ein einfaches Anki-Kartenmodell
|
|
my_model = genanki.Model(
|
|
1607882319, # Zufällige Zahl, um das Modell eindeutig zu identifizieren
|
|
"Einfaches Modell",
|
|
fields=[
|
|
{"name": "Frage"},
|
|
{"name": "Antwort"},
|
|
],
|
|
templates=[
|
|
{
|
|
"name": "Normal",
|
|
"qfmt": "{{Frage}}", # Front der Karte
|
|
"afmt": "{{FrontSide}}<hr id='answer'>{{Antwort}}", # Rückseite der Karte
|
|
},
|
|
],
|
|
css="""
|
|
.card {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
text-align: center;
|
|
font-family: Arial, sans-serif;
|
|
font-size: 24px;
|
|
height: 100%;
|
|
}
|
|
""",
|
|
)
|
|
|
|
# Lies die CSV-Datei und füge Karten hinzu
|
|
karten = []
|
|
with open(csv_datei, "r", encoding="utf-8") as file:
|
|
reader = csv.reader(file,delimiter=";")
|
|
next(reader) # Überspringe die Kopfzeile
|
|
for i, row in enumerate(reader, start=2): # Starte bei Zeile 2 wegen der Kopfzeile
|
|
if len(row) != 2:
|
|
print(f"Warnung: Zeile {i} hat nicht genau 2 Spalten und wird übersprungen: {row}")
|
|
continue
|
|
frage, antwort = row
|
|
karten.append((frage, antwort))
|
|
karten.append((antwort,frage))
|
|
|
|
random.shuffle(karten)
|
|
|
|
# Füge die gemischten Karten zum Deck hinzu
|
|
for frage, antwort in karten:
|
|
my_note = genanki.Note(
|
|
model=my_model,
|
|
fields=[frage, antwort],
|
|
)
|
|
my_deck.add_note(my_note)
|
|
|
|
# Erstelle das Anki-Paket
|
|
genanki.Package(my_deck).write_to_file(ausgabe_datei)
|
|
print(f"Anki-Stapel wurde erfolgreich in '{ausgabe_datei}' gespeichert.") |