Python ist3 csv-writer scheitern, beenden auf-Fehler "TypeError: 'newline' ist ein ungültiges Schlüsselwort-argument für diese Funktion
, Was ich versuche zu tun:
Ich versuche, ändern Sie die Formatierung auf eine csv-Datei von Leerzeichen als Trennzeichen auf Komma getrennt.
, Was ich getan habe:
Kann ich das Einlesen der csv-Datei ganz gut, und drucken Sie die Ausgabe-Zeile für Zeile auf der Konsole aus. Code sieht wie folgt aus:
with open(txtpath, mode='r', newline='') as f:
fReader = csv.reader(f)
for rows in fReader:
print(rows)
Dieser genau das tut, was es soll, und vor Ort überprüfung die Ausgabe bestätigt, dass die Zeilen gelesen werden, richtig.
Das Problem:
Laut der offiziellen Python ist3 Dokumentation auf csv.Autor, "Wenn csvfile ist ein file-Objekt, es geöffnet werden soll, mit newline=" Eins." Mein code sieht wie folgt aus:
with open(csvpath, 'w') as g:
gWriter = csv.writer(g, newline='')
gWriter.writerows(rows)
also alle zusammen, es sieht wie folgt aus:
with open(txtpath, mode='r', newline='') as f:
fReader = csv.reader(f)
for rows in fReader:
print(rows)
with open(csvpath, 'w') as g:
gWriter = csv.writer(g, newline='')
gWriter.writerows(rows)
Allerdings, wenn ich den code ausführen, sowohl mit Pycharm (Anakondas 3.4 ausgewählt als Projekt-interpreter) und aus der Konsole mit Python ist3 mycode.py beide Ergebnisse sagen mir, dass newline "ist ein ungültiges Schlüsselwort-argument für diese Funktion", und Verweise Linie 42, die ist, wo meine writer-Objekt instanziiert wird. Ich lief es durch den debugger und es scheißt aus, sobald ich versuche zu erstellen das writer-Objekt. Wenn ich nicht hinzufügen, das neue-Zeile-argument, es fragt nach einem Dialekt-Spezifikation, so dass nicht funktioniert, entweder.
Ich bin sicher, es gibt etwas offensichtlichen, die mir fehlen, aber ich kann es nicht sehen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Formulierung ist nur ein bisschen vage. Die Datei geöffnet werden sollte, mit
newline=''
, abernewline
ist keine gültige option fürcsv.writer()
selbst.Diesen Fehler zu vermeiden , öffnen Sie die Datei in 'wb-Modus' statt 'w' - Modus. Dies eliminiert die Notwendigkeit für newline.
Korrigierte code ist wie folgt:
Folgendes tun
mit open('filename_inCSV.csv',mode='r') als csvfile:
oder,
mit open('filename_inCSV.csv','r') als csvfile:
newline
funktioniert nicht inwith open('output.csv', 'a',newline='') as fp
. Es kehrt wieder ein Fehler:Ich verwendet
'ab'
Methode und es funktionierte ohne leere Zeilen zwischen den Zeilen: