In Bezug auf seek()
gibt es nicht zu viel zu befürchten.
Erstens ist es nützlich, wenn Sie über eine geöffnete Datei arbeiten.
Es ist wichtig zu beachten, dass die Syntax wie folgt lautet:
fp.seek(offset, from_what)
Wo fp
ist der Dateizeiger, mit dem Sie arbeiten? offset
bedeutet, wie viele Positionen Sie verschieben werden; from_what
definiert Ihren Bezugspunkt:
- 0 : bedeutet, dass Ihr Referenzpunkt der Anfang der Datei ist
- 1 : bedeutet, dass Ihr Referenzpunkt die aktuelle Dateiposition ist
- 2 : bedeutet, dass Ihr Referenzpunkt das Ende der Datei ist
Wenn nicht angegeben, wird from_what
standardmäßig 0 verwendet.
Vergessen Sie niemals, dass sich beim Verwalten von Dateien immer eine Position in dieser Datei befindet, an der Sie gerade arbeiten. Wenn diese Position gerade geöffnet ist, ist sie der Anfang der Datei. Wenn Sie jedoch damit arbeiten, können Sie fortfahren.
seek
wird für Sie nützlich sein, wenn Sie walk
diese geöffnete Datei als Pfad verwenden müssen, in den Sie sich begeben.
os.SEEK_SET
,os.SEEK_CUR
undos.SEEK_END
statt der magischen Zahlen0
,1
und2
, respectively.Wenn Sie eine Datei öffnen, zeigt das System auf den Anfang der Datei. Jedes Lesen oder Schreiben, das Sie tun, geschieht von Anfang an. Eine
seek()
Operation verschiebt diesen Zeiger auf einen anderen Teil der Datei, damit Sie an dieser Stelle lesen oder schreiben können.Wenn Sie also die gesamte Datei lesen möchten, aber die ersten 20 Bytes überspringen möchten, öffnen Sie die Datei,
seek(20)
um zu der Stelle zu gelangen, an der Sie mit dem Lesen beginnen möchten, und fahren Sie dann mit dem Lesen der Datei fort.Oder sagen Sie, Sie möchten jedes 10. Byte lesen, Sie könnten eine Schleife schreiben, die
seek(9, 1)
(9 Bytes vorwärts relativ zu den aktuellen Positionen vorwärts bewegt)read(1)
(ein Byte liest), wiederholt.quelle
Die
seek
Funktion erwartet einen Offset in Bytes.Beispiel für eine Ascii-Datei:
Wenn Sie also eine Textdatei mit folgendem Inhalt haben:
simple.txt
Sie können 1 Byte springen , um das erste Zeichen wie folgt zu überspringen:
Beispiel für das Sammeln von Binärdateien:
quelle
Vergessen Sie bei Zeichenfolgen die Verwendung von WHENCE: Verwenden Sie f.seek (0), um am Anfang der Datei zu positionieren, und f.seek (len (f) +1), um am Ende der Datei zu positionieren. Verwenden Sie open (Datei, "r +"), um irgendwo in einer Datei zu lesen / schreiben. Wenn Sie "a +" verwenden, können Sie nur am Ende der Datei schreiben (anhängen), unabhängig davon, wo Sie den Cursor positionieren.
quelle