如何使用 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
運行效果如下圖所示:
自動把參數對應的文件都讀入並打印了出來。這裡的參數可以有任意多個。