Python如何獲取檔案指定行的內容

2022-10-04 14:21:33 字數 1595 閱讀 6399

linecache, 可以用它方便地獲取某一檔案某一行的內容。而且它也被 trxjkzenlaceback 模組用來獲取相關原始碼資訊來展示。

用法很簡單:

>>> import linecache

>>> linecache.getline('/etc/passwd', 4)

'sys:x:3:3:sys:/dev:/bin/sh\n'

linecache.getline 第一引數是檔名,第二個引數是行編號。如果檔名不能直接找到的話,會從 sys.path 裡找。

如果請求的行數超過檔案行數,函式不會報錯,而是返回''空字串xjkzenl。

如果檔案不存在,函式也不會報錯,也返回''空字串。

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

import linecache

the_line = linecache.getline('d:/freakout.cpp', 222)

print (the_line)

# linecache讀取並快取檔案中所有的文字,

# 若檔案很大,而唯讀一行,則效率低下。

# 可顯示使用迴圈, 注意enumerate從0開始計數,而line_number從1開始

def getline(the_file_path, line_number):

if line_number < 1:

return ''

for cur_line_number, linxjkzenle in enumerate(open(the_file_path, 'ru')):

if cur_line_number ==www.cppcns.com line_number-1:

return line

return ''

方法擴充套件:

'''遇到問題沒人解答?小編建立了乙個python學習交流qq群:857662006

尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的**學習教程和pdf電子書!

'''# python的標準庫linecache模組非常適合這個任務

import linecache

the_line = linecach程式設計客棧e.getline('d:/freakout.cpp', 222)

print (the_line)

# linecache讀取並快取檔案中所有的文字,

# 若檔案很大,而唯讀一行,則效率低下。

# 可顯示使用迴圈, 注意enumerate從0開始計數,而line_number從1開始

def getline(the_file_path, line_number):

if line_number < 1:

return ''

for cur_line_number, line in enumerate(open(the_file_path, 'ru')):

if cur_line_number == line_number-1:

return line

return ''

the_line = linecache.getline('d:/freakout.cpp', 222)

print (the_line)

Shell中如何獲取檔案指定行

比如要獲取 etc passwd檔案,要獲取其第6 10行,並顯示每行的行號。總結一下,方法有很多,行號的顯示可以借助cat n引數,或者sed 來顯示。小結一下,可以有以下方法來獲取。1 n顯示行號,tail n 6顯示第6行之後的行,結合head n 5,獲取前面5行,剛好6 10 cat n ...

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發生變化...

python檔案IO 讀取指定行

python的標準庫linecache模組非常適合這個任務 import linecache the line linecache.getline d freakout.cpp 222 print the line linecache讀取並快取檔案中所有的文字,若檔案很大,而唯讀一行,則效率低下。可...