Wenn der folgenden Python-Code ausgeführt wird:seek(), dann lesen(), dann schreiben() in Python
>>> f = open(r"myfile.txt", "a+")
>>> f.seek(-1,2)
>>> f.read()
'a'
>>> f.write('\n')
ich die folgende (hilfreich) Ausnahme:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 0] Error
die gleiche passiert beim Öffnen mit "r +".
Soll das scheitern? Warum?
Edit:
- Offensichtlich ist dies nur ein Beispiel, nicht das, was ich versuche tatsächlich auszuführen. Mein eigentliches Ziel war es zu verifizieren, dass die Dateien mit "\ n" enden, oder eins hinzufügen, bevor die neuen Zeilen hinzugefügt werden.
- Ich arbeite unter Windows XP, und sie existiert in Python 2.5 und Python 2.6.
ich es geschafft, das Problem zu umgehen, indem sie versuchen,() aufrufen wieder:
f = open (r "myfile.txt", "a +")
f.seek (-1 , 2)
f.read()
'a'
f.seek (-10,2)
f.write ('\ n')
Die aktuellen Parameter des zweiten Anruf nicht versuchen Rolle zu spielen.
Welches Betriebssystem und welche Python-Version verwenden Sie? Dies scheint mit Python 2.4.3 unter Linux 2.6.17 gut zu funktionieren. –
Wollen Sie genau das machen, oder ist es eine Vereinfachung? Wenn das die Aufgabe ist, warum öffnen Sie nicht einfach 'a' und rufen Sie dann f.write, ohne dazwischen zu suchen? – kyle
Auch (zu Lance) funktioniert es in Python 2.5 unter Windows XP überhaupt nicht. – kyle