Dieses Python-Skript extrahiert aus comdirect Finanzreport-PDFs die Girokonto-Umsätze und speichert sie als Tabelle im CSV-Format.
Anhand von Stichwörtern werden die Umsätze simpel kategorisiert. Das smarter zu gestalten ist eine Hoffnung für die Zukunft.
Das Skript erfordert eine funktionierende Installation von Python 3 mit den Modulen pandas und pypdf. Der einfachste Weg, diese Umgebung herzustellen, ist der Umgebungsmanager conda. Conda funktioniert unabhängig von evtl. anderen existierenden Python-Installationen.
- Dieses Repo runterladen und entpacken (grüner Knopf rechts oben: Code -> Download ZIP)
- Installiere conda/miniforge nach den Anweisungen dort
- Öffne eine miniforge-Kommandozeile
cd pfad/zu/parse-kontoauszug
conda env create -f environment.yml
run-default.bat
bearbeiten: Die drei Pfade zu python.exe, parsecomdi.py und dem Ordner mit den PDFs durch diejenigen auf dem eigenen System ersetzen.- Conda erstellt die Umgebung standardmäßig im Pfad
%HOME%\.conda\envs\parse-kontoauszug
, wie es im Skript schon steht. Falls das nicht der Fall ist, gibtconda env list
Auskunft, wo die Umgebung und damit python.exe liegt.
- Conda erstellt die Umgebung standardmäßig im Pfad
run-default.bat
ausführen.
conda activate parse-kontoauszug
python parsecomdi.py
falls die Finanzreport PDFs in demselben Ordner liegen wie das Skript, oder in einem Unterordner.python parsecomdi.py -p "C:\Pfad\zu\PDFs"
falls die Finanzreport PDFs anderswo liegen.python parsecomdi.py -o "girokonto-2023.csv"
um den Namen der Ausgabedatei zu steuern.
Erwartete Ausgabe in der Konsole:
CSV-Ausgabe geöffnet in Excel:
Excel sollte mit der CSV-Datei wie sie ist arbeiten können. Da das CSV-Format nur simple Tabellen beschreiben kann, bietet es sich für Analysen natürlich an, die weitere Arbeit stattdessen im XLSX-Format abzuspeichern.
Die Tabelle wird um zu Excel nett zu sein im Windows-Encoding gespeichert. Das muss man Pandas explizit angeben:
import pandas
df = pandas.read_csv("girokonto.csv", encoding="cp1252", header=0, sep=";")
print(df) # mach was du willst damit