Seite 1 von 1

csv-Datei schreiben

Verfasst: Sonntag 31. Oktober 2021, 19:09
von BastiL
Hallo zusammen,

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)
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:

Code: Alles auswählen

str(round(1.111,2)).replace('.',',')
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.

Re: csv-Datei schreiben

Verfasst: Freitag 5. November 2021, 12:04
von BastiL
Ich werde das jetzt durch eine eigene Funktion zur Maskierung ersetzen und dann das Quoting des csv-Expoet abschalten.