一、什麼是seek
在Python中,seek()函數是用於移動文件讀取指針的位置。通過該函數,我們可以隨時控制指針在文件中的位置,從而實現文件的讀取操作。
二、seek的用法
下面是seek()函數的基本用法:
f.seek(offset, whence)
其中,offset表示偏移量,whence表示偏移的起點。參數解釋如下:
- offset:表示需要移動多少個位元組。若是正數,則表示從文件開頭往文件尾方向移動。若是負數,則表示從文件尾往文件開頭方向移動。
- whence:表示偏移的起點,默認值為0。可以取值為0、1、2,分別表示文件開頭、當前位置、文件尾位置。
比如,我們可以通過下面的代碼實現從文件的頭部開始讀取5個位元組的操作:
with open('file.txt', 'rb') as f:
f.seek(0) # 將指針移動到文件開頭
content = f.read(5) # 從文件開頭讀取5個位元組
print(content)
三、示例代碼
下面是一個完整的示例代碼,該代碼可以從一個文本文檔中讀取特定行數的文本:
def read_file_n_lines(file_path, n):
with open(file_path, 'r') as f:
lines = f.readlines() # 將文件全部內容讀取到一個列表中
total_lines = len(lines) # 總行數
target_lines = min(n, total_lines) # 最終需要讀取的行數
f.seek(0) # 將指針移動到文件開頭
for i in range(target_lines):
line = f.readline()
print(line.strip()) # 輸出每一行的內容
該函數接受兩個參數:文件路徑和需要讀取的行數。首先,我們將整個文件內容讀取到一個列表中,然後計算總行數和需要讀取的行數。接著,使用f.seek()函數將指針移動到文件開頭,使用f.readline()函數一行一行地讀取到目標行,最後輸出每一行的內容。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306554.html