Ich habe Probleme mit etwas Code, der durch eine Reihe von .csvs Schleifen und löscht die letzte Zeile, wenn es nichts darin ist (dh Dateien, die mit dem enden \n
Newline-Zeichen)Python 11gb csv im r + Modus nicht öffnen, öffnet im r Modus
Mein Code funktioniert erfolgreich auf allen Dateien außer einer, die mit 11 GB die größte Datei im Verzeichnis ist. Die zweitgrößte Datei ist 4,5 GB.
Die Linie auf nicht ist einfach:
with open(path_str,"r+") as my_file:
und ich erhalte die folgende Meldung:
IOError: [Errno 22] invalid mode ('r+') or filename: 'F:\\Shapefiles\\ab_premium\\processed_csvs\\a.csv'
Die path_str
I os.file.join
create verwenden, Fehler zu vermeiden, und ich versuchte, um die Datei umbenennen a.csv
nur um sicherzustellen, dass der Dateiname nicht merkwürdig ist. Dies machte keinen Unterschied.
Noch seltsamer ist die Datei gerne im R-Modus zu öffnen. I.e. der folgende Code funktioniert:
with open(path_str,"r") as my_file:
ich um die Datei im Lesemodus navigiert haben versucht, und es ist glücklich Zeichen am Anfang, Ende und in der Mitte der Datei zu lesen.
Kennt jemand irgendwelche Einschränkungen der Dateigröße, mit der Python umgehen kann oder warum ich diesen Fehler bekomme? Ich bin auf Windows 7 64bit und habe 16 GB RAM.
Es muss aufgrund Textmodus sein. Funktioniert 'r + b'? –
Programmiert Ihr Programm irgendetwas anderes mit diesen CSV-Dateien, oder entfernt es einfach die überflüssigen nachlaufenden Zeilenumbrüche? –
@ PM2Ring Danke. Ja - es entfernt nur die abschließenden Zeilenumbrüche. Wenn Sie eine einfachere Lösung für dieses Problem haben, ich bin ganz Ohr :-) Hier ist der Code: https://gist.github.com/RobinL/9895b764ca3ce61c8e37. Ich habe in der Frage nicht nach einer alternativen Lösung gefragt, weil ich neugierig bin, um die Ursache dieses Problems herauszufinden. – RobinL