Verfasst: Donnerstag 23. September 2004, 18:28
Hallo Milan,
gibt es zu diesem Modul eine brauchbare Beschreibung in deutsch?
Stephan
gibt es zu diesem Modul eine brauchbare Beschreibung in deutsch?
Stephan
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
1,2,3
4,5,6
"aha, aha","lalala",xyz
Code: Alles auswählen
import csv
f=file(...)
reader=csv.reader(f) # kein Dialekt, wie bei Exel notwendig wäre, hier werden "," verwendet
for werte in reader:
print repr(werte)
f.close()
Bei Stephans ssv-dateien (semicolon separated values) ginge das dann so:Milan hat geschrieben:Code: Alles auswählen
reader=csv.reader(f) # kein Dialekt, wie bei Exel notwendig wäre, hier werden "," verwendet
Code: Alles auswählen
reader = csv.reader(f),delimiter=';')
Aber das Notepad die Zeilen orginalgetreu einließt gibt mir zu denken:Stephan hat geschrieben:... da liegt der Hase im Pfeffer
In der csv-Datei werden verschiedene Zeilen (die sehr lang sind) gebrochen (mit "\n"). Dadurch ist dann eine Zeile nur 11 Elemente lang (da es nur der Rest der vorhergehenden Zeile ist).
Ist natürlich ziemlich doof von Excel.
Ich vermute, da ist ein Teil der Daten binär gespeichert wurden, sodass da ein Fehler liegt (es wäre sehr nützlich, die Datei mal in binärer Repräsentation ausschnittsweise zu sehen). Selbst wenn das so sein sollte, kann er mit csv aber schon mal den Dialekt genau spezifizieren. Am besten wäre es vielleicht einmal zu testen, was er ohne Dialekt sagt, denn csv verwendet einen Sniffer, der versucht auszukunden, was für ein Dialekt vorliegt. Eventuelle gibt es Probleme mit den Zeilenumsprüngen (binär halt).Stephan hat geschrieben:... mit WordPad oder einem anderen Texteditor öffne, habe ich Zeilenumbrüche. Nur wenn ich die Datei mit NotePad öffne, sind die Zeilen komplett.
Die texte mit zeilenumbrüchen sind dann aber (zumindest bei mir) in anführungsstrichen eingeschlossen. Und damit kommt das csv-modul tatsächlich auch klar.Stephan hat geschrieben: Das Problem ist, dass in der xls-Datei in einigen Zellen Text mit Zeilenumbruch eingegeben ist.
Code: Alles auswählen
import csv
x = file('datei.csv','r')
reader = csv.reader(x)
delimiter=';'
for werte in reader:
print reader
Ja, ist aber mein fehler. Ich hatte da eine verwirrende klammer in dem einen beitrag. Richtig:Stephan hat geschrieben: Ist vieleicht der Code fehlerhaft?