你想根據給出的行號,從文字檔案中讀取一行資料。
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):唯一需要注意的細節是enumerate從0開始計數,因此,既然我們假設desired_line_ number引數從1開始計算,需要在用==比較的時候減去1。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 ''
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發生變化...