您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Python fileinput模塊如何逐行讀取多個文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
fileinput 模塊提供了如下函數可以把多個輸入流合并在一起:
fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None):該函數中的 files 參數用于指定多個文件輸入流。該函數返回一個 FileInput 對象。
當程序使用上面函數創建了 FileInput 對象之后,即可通過 for 循環來遍歷文件的每一行。此外,fileinput 還提供了如下全局函數來判斷正在讀取的文件信息:
fileinput.filename():返回正在讀取的文件的文件名。
fileinput.fileno():返回當前文件的文件描述符(file descriptor),該文件描述符是一個整數。
文件描述符是一個文件的代號,其值為一個整數。后續章節將會介紹關于文件描述符的操作。
fileinput.lineno():返回當前讀取的行號。
fileinput.filelineno():返回當前讀取的行在其文件中的行號。
fileinput.isfirstline():返回當前讀取的行在其文件中是否為第一行。
fileinput.isstdin():返回最后一行是否從 sys.stdin 讀取。程序可以使用“-”代表從 sys.stdin 讀取。
fileinput.nextfile():關閉當前文件,開始讀取下一個文件。
fileinput.close():關閉 FileInput 對象。
通過上面的介紹不難發現,fileinput 也存在一個缺陷,即在創建 FileInput 對象時不能指定字符集,因此它所讀取的文件的字符集必須與操作系統默認的字符集保持一致。當然,如果文本文件的內容是純英文,則不存在字符集的問題。
下面程序示范了使用 fileinput 模塊來讀取多個文件:
import fileinput # 一次讀取多個文件 for line in fileinput.input(files=('info.txt', 'test.txt')): # 輸出文件名,當前行在當前文件中的行號 print(fileinput.filename(), fileinput.filelineno(), line, end='') # 關閉文件流 fileinput.close()
上面程序使用 fileinput.input 直接合并了 info.txt 和 test.txt 兩個文件,這樣程序可以直接遍歷讀取這兩個文件的內容。
看完上述內容,你們對Python fileinput模塊如何逐行讀取多個文件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。