如何在 Python 里優雅地讀取文件特定行
- 2019 年 10 月 4 日
- 筆記
有時候,我們可能需要使用 Python 讀取一個文件,並顯示它的某一行。
你可能會這樣寫代碼:
with open('xxx', encoding='utf-8') as f: lines = f.readlines() print(f'第100行的內容為:{lines[99]}')
如果文件非常大,不能讀取到內存中,那麼你可能會通過for 循環數行數,數到特定行:
with open('xxx', encoding='utf-8') as f: for lineno, line in enumerate(f): if lineno == 99: print(f'第100行的內容為:{lines[99]}')
這兩種寫法都會涉及到很多的代碼,都不夠好看。
實際上,在 Python 裏面,自帶一個模塊 linecache可以實現這個目的,而且它的使用方法非常簡單:
import linecachetext = linecache.getline('xxx.txt', 99)print(f'第100行的內容為:{text}')
我們平時寫的代碼報錯時,traceback 上面的錯誤行對應的內容,就是使用 linecache查到的。
