Python檔案的seek()
方法將檔案的當前位置設定為偏移量(offset
)。 whence
引數是可選的,預設為0
,表示絕對檔案定位,其他值為1
,這意味著相對於當前位置進行搜尋,2
表示相對於檔案的結尾進行搜尋。
seek()
方法沒有返回值。 請注意,如果檔案使用「a
」或「a+」模式開啟進行附加,則在下一次寫入時,任何seek()
操作都將被復原。
如果僅使用’a
‘在附加模式下開啟該檔案,該方法基本上是無操作的,但是對於在啟用讀取(模式’a+
‘)的附加模式下開啟的檔案,該方法仍然有用。
如果使用’t
‘以文字模式開啟檔案,則只有由tell()
返回的偏移是合法的。使用其他偏移會導致未定義的行為。
語法
以下是seek()
方法的語法 -
fileObject.seek(offset[, whence])
引數
0
,表示絕對檔案定位,其他值為1
,這意味著相對於當前位置進行搜尋,2
表示相對於檔案的末尾進行搜尋。返回值
範例
假設’foo.txt
‘檔案中包含以下行 -
This is 1st line
This is 2nd line
This is 3rd line
This is 4th line
This is 5th line
以下範例顯示了seek()
方法的用法。
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "r+")
print ("Name of the file: ", fo.name)
line = fo.readlines()
print ("Read Line: %s" % (line))
# Again set the pointer to the beginning
fo.seek(0, 0)
line = fo.readline()
print ("Read Line: %s" % (line))
# Close opened file
fo.close()
執行上面程式碼後,將得到以下結果 -
Name of the file: foo.txt
Read Line: ['This is 1st line\n', 'This is 2nd line\n', 'This is 3rd line\n', 'This is 4th line\n', 'This is 5th line']
Read Line: This is 1st line