CSV-Datei verarbeiten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Musiker123
User
Beiträge: 40
Registriert: Donnerstag 7. März 2019, 09:48

Hallo zusammen,

Ich suche ein Beispiel für die Verarbeitung einer CSV-Datei mit mehreren Spalten.

Bin zwar in Sachen Python ein Anfänger, habe aber grundsätzlich Programmiererfahrungen.
Allerdings im Bereich der strukturierten Programmierung.

Dort kann man Dateien in Eingabestrukturen einlesen und die dann über die einzelnen Felder
der Struktur be- und verarbeiten.

Irgendwie fehlt mir noch die Verbindung der Strukturen zu den Listen, Array's .

Vielleicht hat ja jemand ein kleines Muster auf seinem Rechner, an dem ich abarbeiten kann 😎

Vorab schon einmal vielen Dank
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Musiker123 hat geschrieben: Sonntag 10. März 2019, 19:04 Ich suche ein Beispiel für die Verarbeitung einer CSV-Datei mit mehreren Spalten.
Welches Problem hast du denn mit der Dokumentation des csv-Moduls? Wo brauchst du vertiefende Info?
Musiker123
User
Beiträge: 40
Registriert: Donnerstag 7. März 2019, 09:48

ich habe eher ein generelles Verständnisproblem.

Also, eine Tabelle (CSV) mit vielen Zeilen und 3 Spalten.

Wie kriege ich die Daten in eine sinnvolle Datenstruktur (zeilenweise) um diese
dann feld- bzw. spaltenweise zu verarbeiten, in eine neue Struktur zu übertragen und dann wieder auszugeben.

Eigentlich ganz einfach, mir fehlt nur ein Beispiel, um ein grundsätzliches Verständnis
für die Sprache zu bekommen.
Ich habe bisher einen Abend im VHS-Kurs Python absolviert, möchte aber nebenher schon einiges ausprobieren.😇

Das lesen der CSV-Datei ist nicht das Problem sonder das Auflösen des
Strings in mehrere Spalten und Datenstrukturen die ich verarbeiten kann.

Ein simples Beispuel würde mir schon helfen.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Solche Beispiele finden sich in der Dokumentation des Moduls:
https://docs.python.org/3/library/csv.html#csv.reader
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Musiker123
User
Beiträge: 40
Registriert: Donnerstag 7. März 2019, 09:48

vielen Dank für die Antworten, das hilft schon weiter 👍
Fiffio
User
Beiträge: 33
Registriert: Donnerstag 21. Februar 2019, 21:20

Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@Fiffio: das ist nicht sehr schön, weil von Arrays die Rede ist, obwohl Listen benutzt werden und weil es ungeschickt ist, zusammengehörige Daten in zwei getrennten Listen zu speichern.
Musiker123
User
Beiträge: 40
Registriert: Donnerstag 7. März 2019, 09:48

Hallo zusammen,

ich habe wieder ein Problem mit CSV-Dateien. Vllt kann mir ja jemand helfen!?
Ich möchte eine CSV-Datei lesen.
Die ersten 3 Zeilen laufen auch gut durch.
In der 4. Zeile ist ein Sonderzeichen ("\") und das Programm bricht mit folgender Meldung ab:

UnicodeEncodeError: 'utf-8' codec can't encode character '\udcdf' in position 41: surrogates not allowed
Unexpected error, recovered safely.


Im Excel ist das Sonderzeichen nicht zu erkennen, aber beim Debugger (PyCharm) wird der Backslash angezeigt.

Wie komme ich darüber weg.

Die CSV-Dateien werden extern von Drittprogrammen erzeugt. Auf den Inhalt habe ich leider keinen Einfluss.

Vielen Dank im Voraus!
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Daten sind fehlerhaft. Laut https://unicodebook.readthedocs.io/unic ... dings.html darf so ein Zeichen (das ist das komplette Ding, \udcdf, nicht nur der backslash. Der ist gar nicht wirklich da) so nicht vorkommen. Allerdings suggeriert das auch, dass es sich dabei um utf16 statt 8 handelt. Kannst du so eine Datei mal im ORIGINAL also zb über pastebin zeigen?
Musiker123
User
Beiträge: 40
Registriert: Donnerstag 7. März 2019, 09:48

Kann man denn nicht die Datei so zu öffnen dass Python alle Codes einfach verarbeitet? Sind doch sowieso nur Texte.
Mit dem zeigen der Datei ist dass es Problem da es sich um Gehaltsdaten handelt.
Ich kriege diese Dateien aus verschiedenen Quellen und muss die in einem Rutsch verarbeiten.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Musiker123: Sowieso nur Texte ist lustig. Du musst a) wissen in welcher Kodierung Textdateien vorliegen, und b) dürfen die dann keine illegalen Bytewerte/-sequenzen enthalten.

Andererseits: Hast Du denn tatsächlich ein Problem damit, denn da steht ja auch „[…] recovered safely.“

Wie liest Du die Daten denn ein? Wie und welche Kodierung gibst Du an? Liegen alle Deine Daten in der gleichen Kodierung vor? Kannst Du den vierten Datensatz isolieren und eventuelle personenbezogene Daten unkenntlich machen und *dass* dann zeigen? Aber nur 1:1 die Bytes und wenn die Datei auch das besagte Problem verursacht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Musiker123
User
Beiträge: 40
Registriert: Donnerstag 7. März 2019, 09:48

so, Problem gelöst.
Habe Kontakt mit dem Ersteller der Datei aufgenommen.
Die Datei wurde fehlerhaft erstellt.
Vielen Dank für die Lösungsansätze !
Antworten