Ich versuche, meiner alten CSV-Datei eine neue Zeile hinzuzufügen. Grundsätzlich wird es jedes Mal aktualisiert, wenn ich das Python-Skript ausführe.
Im Moment speichere ich die alten CSV-Zeilenwerte in einer Liste und lösche dann die CSV-Datei und erstelle sie erneut mit dem neuen Listenwert.
Wollte wissen, gibt es bessere Möglichkeiten, dies zu tun.
Ich bevorzuge diese Lösung mit dem
csv
Modul aus der Standardbibliothek und derwith
Anweisung, um zu vermeiden, dass die Datei offen bleibt.Der wichtigste Punkt ist das
'a'
Anhängen beim Öffnen der Datei.Wenn Sie Python 2.7 verwenden, können in Windows überflüssige neue Zeilen auftreten. Sie können versuchen, zu vermeiden, dass sie
'ab'
stattdessen verwendet werden.'a'
Dies führt jedoch zu TypeError: Ein byteähnliches Objekt ist erforderlich, nicht 'str' in Python und CSV in Python 3.6. Das Hinzufügen vonnewline=''
, wie Natacha vorschlägt, führt zu einer Abwärtsinkompatibilität zwischen Python 2 und 3 .quelle
Basierend auf der Antwort von @GM und unter Berücksichtigung der Warnung von @John La Rooy konnte ich eine neue Zeile anhängen, in der die Datei im
'a'
Modus geöffnet wurde .Ich habe es nicht mit dem normalen Schriftsteller versucht (ohne das Diktat), aber ich denke, dass es auch in Ordnung sein wird.
quelle
Öffnen Sie die Datei mit dem Modus 'a' anstelle von 'w'?
Siehe Lesen und Schreiben von Dateien in den Python-Dokumenten
quelle
Wenn die Datei vorhanden ist und Daten enthält, kann der
fieldname
Parametercsv.DictWriter
automatisch generiert werden für :quelle
quelle
Auf diese Weise füge ich eine neue Zeile in eine CSV-Datei ein:
quelle