怎麼透過Python獲取檔案指定行的內容?

mpsky發表於2021-09-11

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

怎麼透過Python獲取檔案指定行的內容?

用法很簡單:

>>> import linecache
>>> linecache.getline('/etc/passwd', 4)
'sys:x:3:3:sys:/dev:/bin/shn'

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

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

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

# 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, 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)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1806/viewspace-2837465/,如需轉載,請註明出處,否則將追究法律責任。

相關文章