Python 3 – 文件 seek() 方法
在 Python 中,我們可以使用文件對象的 seek() 方法改變文件讀取指針的位置。愛掏網 - it200.com這有助于我們快速地定位文件中的特定位置,或者隨機訪問文件中的數據。愛掏網 - it200.com
在講解 seek() 方法之前,我們先來了解一下文件指針。愛掏網 - it200.com文件指針是一個整數值,它指向文件中下一個要讀取或寫入的位置。愛掏網 - it200.com文件指針的位置可以通過文件對象的 tell() 方法獲取。愛掏網 - it200.com
例如,我們打開一個名為 example.txt
的文本文件并讀取其中的內容:
# 打開文件
file = open("example.txt", mode="r")
# 讀取文件內容
content = file.read()
# 獲取文件指針位置
position = file.tell()
print("文件指針位置:", position)
# 關閉文件
file.close()
運行上面的代碼,輸出結果為:
文件指針位置: 14
由于我們在讀取文件內容后并沒有改變文件指針的位置,因此 position
變量的值為 14,即文件結尾的位置。愛掏網 - it200.com
seek() 方法的語法
seek() 方法的語法如下:
file.seek(offset, whence)
其中,offset
參數指定了文件讀取指針要移動的字節數,whence
參數指定了移動方式,可以取下面三個值中的一個:
0
:表示從文件開頭開始移動,這是默認值。愛掏網 - it200.com1
:表示從當前位置開始移動。愛掏網 - it200.com2
:表示從文件結尾開始移動。愛掏網 - it200.com
改變文件指針的位置
現在,我們來看一個簡單的例子。愛掏網 - it200.com假設我們要讀取文件中的第二行數據,可以使用以下代碼:
# 打開文件
file = open("example.txt", mode="r")
# 移動文件指針到第二行的開頭
file.seek(10)
# 讀取第二行的內容
line2 = file.readline()
print("第二行的內容:", line2)
# 關閉文件
file.close()
在這個例子中,我們首先打開文本文件,并使用 seek() 方法將文件指針移動到第二行開頭的位置。愛掏網 - it200.com然后,我們使用 readline() 方法讀取該行的內容,并打印出來。愛掏網 - it200.com
運行上面的代碼,輸出結果為:
第二行的內容: 2. This is the second line.
自動識別代碼語言
如果你在文章中插入了代碼,建議在代碼塊的開始處指定代碼語言,以便于 markdown 格式的閱讀:
```python
# 這里是 Python 代碼
```
如果你不知道代碼語言,也可以不標記語言,markdown 的渲染引擎可以自動識別代碼語言。愛掏網 - it200.com
隨機訪問文件中的數據
除了用于定位指定位置的數據外,seek() 方法還可以用于隨機訪問文件中的數據。愛掏網 - it200.com例如,我們可以使用以下代碼從文件中讀取一定長度的數據:
# 打開文件
file = open("example.txt", mode="r")
# 移動文件指針到第二行開頭
file.seek(10)
# 讀取 8 個字節的數據
data = file.read(8)
print("讀取到的數據:", data)
# 關閉文件
file.close()
相信你已經看懂以上代碼的含義。愛掏網 - it200.com我們使用 seek() 方法將文件指針移動到第二行的開頭,然后使用 read() 方法從文件中讀取 8 個字節的數據,并打印出來。愛掏網 - it200.com
運行以上代碼,輸出結果為: