Mehr Notizen geändert
This commit is contained in:
File diff suppressed because it is too large
Load Diff
55
Lernfortschritt.py
Normal file
55
Lernfortschritt.py
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
import zipfile
|
||||||
|
import sqlite3
|
||||||
|
import csv
|
||||||
|
import os
|
||||||
|
import tempfile
|
||||||
|
|
||||||
|
def extract_learning_progress(apkg_path, output_csv):
|
||||||
|
# Temporäres Verzeichnis zum Entpacken
|
||||||
|
with tempfile.TemporaryDirectory() as temp_dir:
|
||||||
|
# .apkg entpacken
|
||||||
|
with zipfile.ZipFile(apkg_path, 'r') as zip_ref:
|
||||||
|
zip_ref.extractall(temp_dir)
|
||||||
|
|
||||||
|
db_path = os.path.join(temp_dir, "collection.anki2")
|
||||||
|
if not os.path.exists(db_path):
|
||||||
|
print("Fehler: collection.anki2 nicht gefunden.")
|
||||||
|
return
|
||||||
|
|
||||||
|
# Verbindung zur Datenbank
|
||||||
|
conn = sqlite3.connect(db_path)
|
||||||
|
cursor = conn.cursor()
|
||||||
|
|
||||||
|
#cursor.execute("SELECT COUNT(*) FROM cards")
|
||||||
|
#print("Anzahl Karten in der Datenbank:", cursor.fetchone()[0])
|
||||||
|
|
||||||
|
cursor.execute("""
|
||||||
|
SELECT cards.id, notes.flds, cards.ivl, cards.reps, cards.type
|
||||||
|
FROM cards
|
||||||
|
JOIN notes ON cards.nid = notes.id
|
||||||
|
""")
|
||||||
|
results = cursor.fetchall()
|
||||||
|
print("Anzahl verknüpfte Karten:", len(results))
|
||||||
|
for row in results[:5]:
|
||||||
|
print(row)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Daten auslesen: id, fälligkeitsdatum, Intervall, Wiederholungen, Lapses, Kartentyp
|
||||||
|
cursor.execute("""
|
||||||
|
SELECT id, nid, due, ivl, reps, lapses, type
|
||||||
|
FROM cards
|
||||||
|
""")
|
||||||
|
rows = cursor.fetchall()
|
||||||
|
|
||||||
|
# In CSV-Datei schreiben
|
||||||
|
with open(output_csv, mode='w', newline='', encoding='utf-8') as csvfile:
|
||||||
|
writer = csv.writer(csvfile)
|
||||||
|
writer.writerow(["card_id", "note_id", "due", "interval_days", "repetitions", "lapses", "type"])
|
||||||
|
writer.writerows(rows)
|
||||||
|
|
||||||
|
conn.close()
|
||||||
|
print(f"{len(rows)} Karten wurden exportiert nach: {output_csv}")
|
||||||
|
|
||||||
|
# Beispiel-Aufruf
|
||||||
|
extract_learning_progress("Langzeit.apkg", "lernfortschritt.csv")
|
||||||
Reference in New Issue
Block a user