From 8d891bd6befce02ea769e353b491727f934f2595 Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 20 Dec 2023 13:50:59 +0100 Subject: [PATCH] project started --- README.md | 1 + csv_calc.py | 40 ++++++++++++++++++++++++++++++++++++++++ docs.md | 34 ++++++++++++++++++++++++++++++++++ requirements.txt | 2 ++ 4 files changed, 77 insertions(+) create mode 100644 README.md create mode 100644 csv_calc.py create mode 100644 docs.md create mode 100644 requirements.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..d24aa72 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# UCS Import mit Python Script \ No newline at end of file diff --git a/csv_calc.py b/csv_calc.py new file mode 100644 index 0000000..863b0ea --- /dev/null +++ b/csv_calc.py @@ -0,0 +1,40 @@ +import pandas as pd +import chardet + + +# Prüft Formatierung der CSV, formatiert diese zu utf-8 und speichert das Ergebnis als neue Liste +def format_csv(path, type): + with open(path, 'rb') as file: + result = chardet.detect(file.read()) + + detected_encoding = result['encoding'] + + # CSV-Datei mit Pandas einlesen + try: + df = pd.read_csv(path, encoding=detected_encoding) + print("Datei erfolgreich eingelesen.") + df.to_csv(type, index=False, encoding='utf-8') + print("UTF-8 Kopie erfolgreich erstellt.") + + except pd.errors.ParserError as e: + # Wenn ein Parserfehler auftritt, gibt eine Fehlermeldung aus + print(f"Fehler beim Einlesen der CSV-Datei: {e}") + + +if __name__ == "__main__": + + oldlist = 'Data/alte-liste-utf.csv' + newlist = 'Data/neue-liste-utf.csv' + + # Liste nach Fehler prüfen und ggfs Zeichern ersetzen + + #path_old_csv = input('Pfad zur alten Liste eingeben eingeben: ') + #format_csv(path_old_csv, oldlist) + #path_new_csv = input('Pfad zur neuen Liste eingeben eingeben: ') + #format_csv(path_new_csv, newlist) + + # Generierte Listen mit pandas öffnen + # Spaltennamen prüfen und überflüssige Spalten löschen + # Abgleich starten -collisions + + diff --git a/docs.md b/docs.md new file mode 100644 index 0000000..9eb9e58 --- /dev/null +++ b/docs.md @@ -0,0 +1,34 @@ +# CSV Import Tool Doku + +### Ziel +- neue und alte csv Datei einlesen und abgleichen +- Datei formatieren in einheitlichen Zeichensatz utf8 +- Ausgabe von Gleichen, neuen und alten Einträgen +- Rechtschreibprüfung + +### Probleme + +- Read Error "Lehnau, Dr." als ein Feld ("," verursacht Problem) +- fehlende Spalten labels +- Tippfehler +- mehrere mit demselben Namen + +### Ablauf + +1. Einfügen von Datei mit DnD oder Dateipfad +2. Formatieren der Datei in korrektes Zeichenformat +3. Reduzieren auf zentrale Spalten +4. Abgleichen der beiden Listen +5. Prüfung auf Tippfehler +6. Ausgabe der Ergebnisse +7. Optionaler Export der Vergleichsliste +8. Bearbeitung der Tippfehlerprüfung? +9. Eingabe zusätzlicher Spalten +10. Export der fertigen Liste + +### User Interface + +- Zwei Drag and Drop Fenster zur Eingabe der Dateien +- Wir bei Eingabe einer Datei formatiert und auf nötige Spalten geprüft, dann grün/ grau +- Ein Status und Abgleichs Fenster rechts +- Consolenartiger Ablauf unten diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b4fa6ca --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +panads +chardet \ No newline at end of file