Suche vom Ende der Datei nicht unterstützte Ausnahme werfen
Habe ich dieses code-snippet und ich bin versucht zu suchen, rückwärts vom Ende der Datei mit python:
f=open('D:\SGStat.txt','a');
f.seek(0,2)
f.seek(-3,2)
Dies wirft folgende exception während der Ausführung:
f.seek(-3,2)
io.UnsupportedOperation: can't do nonzero end-relative seeks
Bin ich hier etwas fehlt?
Sollten Sie post, als Antwort.
Python 3 unterstützt nur-text-Datei sucht, aus der Anfang der Datei. Wenn Sie wollen, um die letzten drei Zeilen einer Datei, die Sie verwenden können, deque(f, 3) zur Iteration über gerade diese Zeilen.
Python 3 unterstützt nur-text-Datei sucht, aus der Anfang der Datei. Wenn Sie wollen, um die letzten drei Zeilen einer Datei, die Sie verwenden können, deque(f, 3) zur Iteration über gerade diese Zeilen.
InformationsquelleAutor seriousgeek | 2014-02-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Dokumentation für Python 3.2:
Daher können Sie ändern Ihr Programm, um zu Lesen:
Allerdings sollten Sie sich bewusst sein, dass das hinzufügen der
b
Flagge, wenn Sie Lesen oder schreiben von text können unbeabsichtigte Folgen haben (mit multibyte-Kodierung zum Beispiel), und in der Tat ändert den Typ der Daten, die gelesen oder geschrieben werden. Für eine gründlichere Diskussion der Ursache des Problems und eine Lösung, die nicht erfordert das hinzufügen derb
flag, siehe eine andere Antwort auf diese Frage.InformationsquelleAutor jonrsharpe
Den vorhandenen Antworten tun beantworten Sie die Frage, geben jedoch keine Lösung.
Vom readthedocs:
Unterstützt wird dies durch die Dokumentation, die besagt, dass:
Das heißt, wenn Sie diesen code aus alten Python:
es Aussehen würde, wie dies in Python 3:
Lösung
Setzen diese Informationen gemeinsam können wir erreichen das Ziel der OP:
InformationsquelleAutor Eric Lindsey
Um sucht von der aktuellen position und am Ende müssen Sie öffnen Sie die text-Datei im binary-Modus. Siehe das Beispiel, wo ich eine Datei angelegt haben "nums.txt" und haben "ABCDEFGHIJKLMNOPQRSTUVWXYZ" in der Datei. Ich lese die Buchstaben, die den string "PYTHON" aus der Datei und zeigt das gleiche. Finden Sie den code, den ich habe laufen in python 3.6 windows in anaconda 4.2
InformationsquelleAutor Vikas Thada