Python檔案seek()方法

2019-10-16 23:05:31

Python檔案的seek()方法將檔案的當前位置設定為偏移量(offset)。 whence引數是可選的,預設為0,表示絕對檔案定位,其他值為1,這意味著相對於當前位置進行搜尋,2表示相對於檔案的結尾進行搜尋。

seek()方法沒有返回值。 請注意,如果檔案使用「a」或「a+」模式開啟進行附加,則在下一次寫入時,任何seek()操作都將被復原。

如果僅使用’a‘在附加模式下開啟該檔案,該方法基本上是無操作的,但是對於在啟用讀取(模式’a+‘)的附加模式下開啟的檔案,該方法仍然有用。

如果使用’t‘以文字模式開啟檔案,則只有由tell()返回的偏移是合法的。使用其他偏移會導致未定義的行為。

語法

以下是seek()方法的語法 -

fileObject.seek(offset[, whence])

引數

  • 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