新聞中心
fileinput 模塊提供了如下函數(shù)可以把多個輸入流合并在一起:

fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None):該函數(shù)中的 files 參數(shù)用于指定多個文件輸入流。該函數(shù)返回一個 FileInput 對象。
當(dāng)程序使用上面函數(shù)創(chuàng)建了 FileInput 對象之后,即可通過 for 循環(huán)來遍歷文件的每一行。此外,fileinput 還提供了如下全局函數(shù)來判斷正在讀取的文件信息:
fileinput.filename():返回正在讀取的文件的文件名。
fileinput.fileno():返回當(dāng)前文件的文件描述符(file descriptor),該文件描述符是一個整數(shù)。
文件描述符是一個文件的代號,其值為一個整數(shù)。后續(xù)章節(jié)將會介紹關(guān)于文件描述符的操作。
fileinput.lineno():返回當(dāng)前讀取的行號。
fileinput.filelineno():返回當(dāng)前讀取的行在其文件中的行號。
fileinput.isfirstline():返回當(dāng)前讀取的行在其文件中是否為第一行。
fileinput.isstdin():返回最后一行是否從 sys.stdin 讀取。程序可以使用“-”代表從 sys.stdin 讀取。
fileinput.nextfile():關(guān)閉當(dāng)前文件,開始讀取下一個文件。
fileinput.close():關(guān)閉 FileInput 對象。
通過上面的介紹不難發(fā)現(xiàn),fileinput 也存在一個缺陷,即在創(chuàng)建 FileInput 對象時不能指定字符集,因此它所讀取的文件的字符集必須與操作系統(tǒng)默認(rèn)的字符集保持一致。當(dāng)然,如果文本文件的內(nèi)容是純英文,則不存在字符集的問題。
下面程序示范了使用 fileinput 模塊來讀取多個文件:
import fileinput
# 一次讀取多個文件
for line in fileinput.input(files=('info.txt', 'test.txt')):
# 輸出文件名,當(dāng)前行在當(dāng)前文件中的行號
print(fileinput.filename(), fileinput.filelineno(), line, end='')
# 關(guān)閉文件流
fileinput.close()上面程序使用 fileinput.input 直接合并了 info.txt 和 test.txt 兩個文件,這樣程序可以直接遍歷讀取這兩個文件的內(nèi)容。
網(wǎng)站欄目:創(chuàng)新互聯(lián)Python教程:Pythonfileinput模塊:逐行讀取多個文件
網(wǎng)站路徑:http://www.5511xx.com/article/ccsidgs.html


咨詢
建站咨詢
