mp3cut begonnen
This commit is contained in:
86
csv2anki_mp3.py
Normal file
86
csv2anki_mp3.py
Normal file
@@ -0,0 +1,86 @@
|
||||
import genanki
|
||||
import csv
|
||||
import random
|
||||
|
||||
|
||||
# Variablen
|
||||
ausgabe_datei = "LZ.apkg"
|
||||
csv_datei = "LZ.csv" # Name der CSV-Datei
|
||||
|
||||
# Konvertieren der LZ-Kopie zu CSV, CSV-Trenner ist das Semikolon
|
||||
# Datei einlesen und neue Datei schreiben
|
||||
with open('LZ.txt', 'r', encoding='utf-8') as input_file, open('LZ.csv', 'w', encoding='utf-8', newline='') as output_file:
|
||||
reader = csv.reader(input_file, delimiter='\t') # Tab als Trennzeichen
|
||||
writer = csv.writer(output_file, delimiter=';') # Semikolon als Trennzeichen
|
||||
|
||||
for row in reader:
|
||||
if len(row) >= 3: # Sicherstellen, dass es mindestens 3 Spalten gibt
|
||||
writer.writerow([row[1], row[2]]) # Spalte 2 und 3 schreiben
|
||||
|
||||
|
||||
# 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(
|
||||
1607392319, # 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))
|
||||
# Als "Normal" drehen
|
||||
karten.append((antwort,frage))
|
||||
#my_note = genanki.Note(
|
||||
# model=my_model,
|
||||
# fields=[frage, antwort],
|
||||
#)
|
||||
#my_deck.add_note(my_note)
|
||||
|
||||
# Mische die Reihenfolge der Karten
|
||||
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.")
|
||||
Reference in New Issue
Block a user