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) # 移動到檔的第六個位元組
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2) # 移動到檔倒數第三個位元組
13
>>> f.read(1)
b'd'
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5) # 移動到檔的第六個位元組
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2) # 移動到檔倒數第三個位元組
13
>>> f.read(1)
b'd'
檔 zaixian.txt 的內容如下:
1:www.xuhuhu.com 2:www.xuhuhu.com 3:www.xuhuhu.com 4:www.xuhuhu.com 5:www.xuhuhu.com
迴圈讀取檔的內容:
實例
#!/usr/bin/python3
# 打開檔
fo = open("zaixian.txt", "r+")
print ("檔案名為: ", fo.name)
line = fo.readline()
print ("讀取的數據為: %s" % (line))
# 重新設置檔讀取指針到開頭
fo.seek(0, 0)
line = fo.readline()
print ("讀取的數據為: %s" % (line))
# 關閉檔
fo.close()
以上實例輸出結果為:
檔案名為: zaixian.txt 讀取的數據為: 1:www.xuhuhu.com 讀取的數據為: 1:www.xuhuhu.com