csv-Datei schreiben
Verfasst: Sonntag 31. Oktober 2021, 19:09
Hallo zusammen,
ich möchte eine CSV-Datei schreiben. Der Dialekt lässt sich wie folgt beschreiben:
Einziges Problem das ich habe: Fliesskommazahlen sind kommagetrennt mit zwei Nachkommastellen und ohne Anführungszeichen zu schreiben. Ich muss also aus 1.111 1,11 machen:
Freilich ist '1,11' nach dieser Operation für Python keine Zahl mehr sondern ein String und folgerichtig werden die so bearbeiteten Zahlen ins csv mit Anführungszeichen maskiert geschrieben, und das soll ja nicht so sein. Ich habe leider keine Möglichkeit gefunden wie ich das lösen kann.
Ich habe über pandas "to_csv" nachgedacht, das mehr Optionen anbietet, aber dasselbe Problem hat:
quoting optional constant from csv module. Defaults to csv.QUOTE_MINIMAL. If you have set a float_format then floats are converted to strings and thus csv.QUOTE_NONNUMERIC will treat them as non-numeric.
ich möchte eine CSV-Datei schreiben. Der Dialekt lässt sich wie folgt beschreiben:
Code: Alles auswählen
with open('names.csv', 'w', newline='') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=header.keys(),\
delimiter=';', quotechar='"', quoting=csv.QUOTE_NONNUMERIC)
Code: Alles auswählen
str(round(1.111,2)).replace('.',',')
Ich habe über pandas "to_csv" nachgedacht, das mehr Optionen anbietet, aber dasselbe Problem hat:
quoting optional constant from csv module. Defaults to csv.QUOTE_MINIMAL. If you have set a float_format then floats are converted to strings and thus csv.QUOTE_NONNUMERIC will treat them as non-numeric.