fileinput模塊 相對于open函數 的優點
fileinput模塊可以對一個或多個文件中的內容進行迭代、遍歷等操作,的open函數是對一個文件進行讀寫操作;
fileinput.input()函數生成一個迭代器,遇到大文件的讀取時不會占用太大的內存;
fileinput對文件進行循環遍歷,格式化輸出,查找、替換等操作,還能獲取每一行的行號等等
def input(files=None, inplace=False, backup="", bufsize=0, mode="r", openhook=None):
files: # 文件的路徑列表。此參數為空默認是stdin方式;單文件files=('0.txt',);多文件files=('0.txt','1.txt') 元組或者列表形式傳參
inplace: # 是否將標準輸出的結果寫回文件,默認不取代
backup: # 備份文件的擴展名,只指定擴展名,如.bak。文件名默認原文件名,備份文件名為“0.txt.bak”。如果該文件的備份文件已存在,則會自動覆蓋。
bufsize: # 緩沖區大小,默認為0,如果文件很大,可以修改此參數,一般默認即可
mode: # 讀寫模式,默認為只讀(class FileInput中有('r', 'rU', 'U', 'rb')四種模式,據說3.4 版后已移除 'rU' 和 'U' 模式)
openhook: # 該鉤子用于控制打開的所有文件,比如說編碼方式等;
鉤子hook,顧名思義,可以理解是一個掛鉤,作用是有需要的時候掛一個東西上去。具體的解釋是:鉤子函數是把我們自己實現的hook函數在某一時刻掛接到目標掛載點上。
若沒有傳入任何的鉤子,fileinput 默認使用的是 open 函數。下為fileinput模塊中的FileInput類中的片段:
if self._openhook:
self._file = self._openhook(self._filename, self._mode)
else:
self._file = open(self._filename, self._mode)

浙公網安備 33010602011771號