從檔案中讀取指定的行

2021-06-15 11:10:58 字數 937 閱讀 5670

你想根據給出的行號,從文字檔案中讀取一行資料。

python標準庫linecache模組非常適合這個任務:

import linecache  

theline

= linecache

.getline(thefilepath, desired_line_number) 

討論

對這個任務而言,標準的linecache模組是python能夠提供的最佳解決工具。當你想要對檔案中的某些行進行多次讀取時,linecache特別有用,因為linecache會快取一些資訊以避免重複一些工作。當你不需要從快取中獲得行資料時,可以呼叫模組的clearcache函式來釋放被用作快取的記憶體。當磁碟上的檔案發生了變化時,還可以呼叫checkcache,以確保快取中儲存的是最新的資訊。

linecache讀取並快取你指定名字的檔案中的所有文字,所以,如果檔案非常大,而你只需要其中一行,為此使用linecache則顯得不是那麼必要。如果這部分可能是你的程式的瓶頸,可以使用顯式的迴圈,並將其封裝在乙個函式中,這樣可以獲得速度上的一些提公升,像這樣:

def getline(thefilepath, desired_line_number):  

if desired_line_number 

<

1:return ''  

for current_line_number, line in 

enumerate(open(thefilepath, 'ru')):  

if current_line_number

== desired_line_number-1: return line  

return '' 

唯一需要注意的細節是enumerate從0開始計數,因此,既然我們假設desired_line_ number引數從1開始計算,需要在用==比較的時候減去1。

shell awk讀取檔案中的指定行的指定字段

awk指定讀取檔案中的某一行的某個字段 awk 可以設定條件來輸出檔案中m行到n行中每行的指定的k欄位,使用格式如下 awk nr m,nr n path filename m,n,k表示實在的數值。如果要用變數來表示m,n的值,則變數需要用單引號將其引起來。nr,是awk命令在此用法下的規定字段 ...

讀取檔案指定行linecache

import linecache poem programming is fun when the work is done if you wanna make your work also fun use python f file poem.txt w f.write poem f.close ...

python讀取檔案指定行

import linecache file open 3 2.txt r linecount len file.readlines linecache.getline 3 2.txt linecount 這樣做的過程中發現乙個問題,因為我的指令碼是迴圈讀取3 2.txt檔案,當3 2.txt發生變化...