如何使用 Python批量讀取多個文件
- 2019 年 10 月 4 日
- 筆記
當我們要批量讀取多個文件所有內容,並把所有行列印出來時,我們可能會這樣寫程式碼:
file_list = ['1.txt', '2.txt', '3.txt']for path in file_list: with open(path, encoding='utf-8') as f: for line in f: print(line)
但這樣寫程式碼不好看。Python 自帶一個更好用的模組:fileinput。
如果要使用 fileinput讀取列表中的多個文件,那麼可以這樣寫程式碼:
import fileinputfile_list = ['1.txt', '2.txt', '3.txt']with fileinput.input(files=file_list) as f: for line in f: print(line)
但如果僅僅是這樣,那這個模組也並沒有省多少事情。我們再來看看它的高級功能。
創建一個 read.py,其內容如下:
import fileinputwith fileinput.input() as f: for line in f: print(line)
這個程式碼初看起來,沒有讀入任何文件,那麼它的內容從哪裡來呢?
此時我們運行,並嘗試輸入一些內容回車。如下圖所示:

可以看出,它會自動把你輸入的內容列印出來,相當於在 whileTrue裡面加上了 input。
不僅如此,這段程式碼不做任何修改,我們在 read.py同目錄下創建3個文件 1.txt 2.txt 3.txt。然後使用如下命令運行:
python3 read.py 1.txt 2.txt 3.txt
運行效果如下圖所示:

自動把參數對應的文件都讀入並列印了出來。這裡的參數可以有任意多個。