Python3 File seek() メソッド
概要
seek()このメソッドは、ファイルの読み取りポインタを指定位置に移動するために使用します。
構文
seek() メソッドの構文は次のとおりです:
fileObject.seek(offset[, whence])
引数
-
offset-- 開始位置からのオフセット、つまり移動するバイト数を表します。負の場合は、末尾から数えた位置から始まることを意味します。
whence:オプションで、デフォルト値は 0 です。offset には、どの位置からオフセットを開始するかを示す引数を指定します。0 はファイルの先頭から、1 は現在位置から、2 はファイルの末尾から計算することを表します。
戻り値
操作が成功した場合は新しいファイル位置を返し、失敗した場合は -1 を返します。
例
以下の例は、seek() メソッドの使用法を示しています:
例
>>> f = open('workfile', 'rb+')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5) # ファイルの6バイト目に移動
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2) # ファイルの末尾から3バイト目に移動
13
>>> f.read(1)
b'd'
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5) # ファイルの6バイト目に移動
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2) # ファイルの末尾から3バイト目に移動
13
>>> f.read(1)
b'd'
ファイル サンプル.txt の内容は次のとおりです:
1:www.example.com 2:www.example.com 3:www.example.com 4:www.example.com 5:www.example.com
ファイルの内容をループで読み取ります:
例
#!/usr/bin/python3
# ファイルを開く
fo = open("サンプル.txt", "r+")
print ("ファイル名:", fo.name)
line = fo.readline()
print ("読み取ったデータ: %s" % (line))
# ファイルの読み取りポインタを先頭に再設定
fo.seek(0, 0)
line = fo.readline()
print ("読み取ったデータ: %s" % (line))
# ファイルを閉じる
fo.close()
上記の例の出力結果は次のとおりです:
文件名为: サンプル.txt 读取的数据为: 1:www.example.com 读取的数据为: 1:www.example.com
その他の拡張
Python3 File(ファイル) メソッド