python 3.2: IOError: [Errno 22] Invalid argument: '/home/pi/data/temp/file1\n.txt'
Ich bin ein Neuling auf python-Programmierung. Ich habe einen counter.txt Datei, aus der ich lese den Zähler Wert . Mit diesem Zählerstand habe ich zum erstellen von neuen Dateien in einen anderen Ordner wie "/home/pi/data/temp/file%s.txt'% - Linie.
zB: file1.txt, file2.txt und so weiter..
Ich geschrieben habe einige code, für diese und für einige Grund bin ich auf den folgenden Fehler:
IOError: [Errno 22] Invalid argument: '/home/pi/data/temp/file1\n.txt'
Mein python-code ist wie folgt:
while True:
counter_file = open("counter.txt", 'r+')
line = counter_file.readline()
print(line)
counter_file.close()
file_read = open(r'/home/pi/data/temp/file%s.txt'%line, 'w')
#data_line = line_read.decode("utf-8")
#file_read.write("%s"%data_line)
file_read.close()
counter_file = open("counter.txt", 'w')
line = int(line) + 1
counter_file.write("%s"%line)
counter_file.truncate()
counter_file.close()
während ich dies auszuführen, bekomme ich diese traceback:
File "compute1.py", line 24, in <module>
file_read = open(r'/home/pi/data/temp/file%s.txt'%line, 'w')
IOError: [Errno 22] Invalid argument: '/home/pi/data/temp/file1\n.txt'
Mir bitte helfen in dieser Hinsicht.
Danke!
InformationsquelleAutor Samarth Kapoor | 2014-11-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie entfernen den trailing newline aus der
line
variable. Diese kann getan werden nur durch Aufruf.strip()
. Sie können sehen, der Pfad der Datei coming-out alswenn Sie wahrscheinlich erwarten, es zu
Dies ist, weil Ihre
counter.txt
Datei verwendet\n
als das newline-Zeichen, so dass jede Zeile endet auch mit ihm. Wenn Siereadline
ist, bekommt es die volle Linie einschließlich das neue-Zeile-Zeichen, so müssen Sie entfernen Sie es aus. Ersetzen Sie diese Zeile mit\n
ist ein gültiges Zeichen für einen Dateinamen und wird nicht dazu führenfopen(2)
zu führenEINVAL
.danke für die Erklärung 🙂 es hat funktioniert.
InformationsquelleAutor Kevin Brown
Der Prozess kann nicht schreiben Sie eine Datei in diesem Verzeichnis. Entweder machen Sie es so, dass der Prozess kann, oder schreib woanders statt.
InformationsquelleAutor Ignacio Vazquez-Abrams