回答:
seek()あまり心配する必要はありません。
まず、開いているファイルを操作するときに便利です。
その構文は次のとおりであることに注意することが重要です。
fp.seek(offset, from_what)
fp作業しているファイルポインターはどこですか。offset移動するポジションの数を意味します。from_what参照ポイントを定義します。
省略した場合のfrom_whatデフォルトは0です。
ファイルを管理するときは、常に現在作業しているファイル内の位置が存在することを忘れないでください。開いたばかりの場合、その位置がファイルの先頭になりますが、ファイルを操作するときに、進むことができます。開いているファイル
seekにwalk沿って移動する必要があるときに、移動先のパスと同じように役立ちます。
ファイルを開くと、システムはファイルの先頭を指し示します。読み取りまたは書き込みは最初から行われます。seek()あなたがその場所で読み取りまたは書き込みできるように、ファイルのいくつかの他の部分へのポインタ操作が移動します。
したがって、ファイル全体を読み取るが最初の20バイトをスキップする場合は、ファイルを開いて、seek(20)読み取りを開始する場所に移動してから、ファイルの読み取りを続行します。
または、10バイトごとに読み取りたい場合はseek(9, 1)、read(1)(現在の位置から9バイト先に移動)、(1バイトを読み取る)、繰り返すループを作成できます。
seek期待関数はオフセットをバイト単位で。
したがって、次の内容のテキストファイルがあるとします。
simple.txt
abc
次のように、1バイトをジャンプして最初の文字をスキップできます。
fp = open('simple.txt', 'r')
fp.seek(1)
print fp.readline()
>>> bc
fp = open('afile.png', 'rb')
fp.seek(16)
print 'width: {0}'.format(struct.unpack('>i', fp.read(4))[0])
print 'height: ', struct.unpack('>i', fp.read(4))[0]
注:呼び出す
readと、リードヘッドの位置が変わりますseek。
文字列の場合は、WHENCEの使用を忘れてください。f.seek(0)を使用してファイルの先頭に配置し、f.seek(len(f)+1)を使用してファイルの末尾に配置します。open(file、 "r +")を使用して、ファイル内の任意の場所で読み取り/書き込みを行います。「a +」を使用すると、カーソルの位置に関係なく、ファイルの最後にのみ書き込む(追加する)ことができます。
os.SEEK_SET、os.SEEK_CUR、およびos.SEEK_END代わりにマジックナンバーを0、1と2それぞれ。