Meine Daten sieht wie folgt aus etwas:Python CSV Schriftsteller Zitat Strings mit zusätzlichen Leerzeichen
data = [
[" trailing space", 19, 100],
[" ", 19, 100],
]
writer = csv.writer(csv_filename, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
Ausgabe
trailing space,19,100
,19,100
Was ich will
" trailing space",19,100
" ",19,100
Python Standard-CSV-Schriftsteller der hat Option zu "QUOTE_MINIMAL", aber es enthält keine Zeichenketten mit zusätzlichen Leerzeichen darin. In meinem Fall sind diese leeren Bereiche tatsächlich kritisch, aber ohne zu zitieren, streift der Leser (wie libre-office) die Leerzeichen, wenn sie nicht zitiert werden.
Gibt es eingebaute Optionen oder schnelle billige Möglichkeit, dem Verfasser zu sagen, leere Strings mit Leerzeichen zu zitieren?
Auch "QUOTE_NONNUMERIC" zitiert zu viel. Die tatsächlichen Daten sind riesig (einige hundert Megabyte mit 60% - 70% der Strings). Es klingt vielleicht albern, aber ich versuche, die CSV-Größe zu reduzieren, indem Sie die Anführungszeichen minimieren.
Es wird zu viel zitiert werden. Nicht sicher, wie groß der Unterschied der Größe sein wird, aber meine CSV-Ausgabe kann ziemlich groß sein (die Frage mit mehr Details aktualisiert). Und Zitate können manchmal unnötig sein. – Sufendy
Die Änderung der Dateigröße aufgrund des Entfernens von Anführungszeichen ist trivial im Vergleich zu allem, was Sie sonst noch tun könnten (z. B. Komprimieren der Datei und Lesen durch einen Dekomprimierungsstrom). Es hört sich so an, als hätten Sie ein großes Problem mit dem XY-Problem. – DSM
Guter Punkt. Ich weiß nicht, ich denke du hast Recht. Aber es scheint, als hätte das "QUOTE_MINIMAL" flexibler sein können. Auch mit benutzerdefinierten Zitat Weg von der anderen Antwort ist zu hacky. – Sufendy