fileinput模塊可以對(duì)一個(gè)或多個(gè)文件中的內(nèi)容進(jìn)行迭代、遍歷等操作。
該模塊的input()函數(shù)有點(diǎn)類似文件readlines()方法,區(qū)別在于:
前者是一個(gè)迭代對(duì)象,即每次只生成一行,需要用for循環(huán)迭代。
后者是一次性讀取所有行。在碰到大文件的讀取時(shí),前者無疑效率更高效。
用fileinput對(duì)文件進(jìn)行循環(huán)遍歷,格式化輸出,查找、替換等操作,非常方便。
【典型用法】
代碼如下:
import fileinput
for line in fileinput.input():
process(line)
【基本格式】
代碼如下:
fileinput.input([files[, inplace[, backup[, bufsize[, mode[, openhook]]]]]])
【默認(rèn)格式】
代碼如下:
fileinput.input (files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
files: #文件的路徑列表,默認(rèn)是stdin方式,多文件['1.txt','2.txt',...]
inplace: #是否將標(biāo)準(zhǔn)輸出的結(jié)果寫回文件,默認(rèn)不取代
backup: #備份文件的擴(kuò)展名,只指定擴(kuò)展名,如.bak。如果該文件的備份文件已存在,則會(huì)自動(dòng)覆蓋。
bufsize: #緩沖區(qū)大小,默認(rèn)為0,如果文件很大,可以修改此參數(shù),一般默認(rèn)即可
mode: #讀寫模式,默認(rèn)為只讀
openhook: #該鉤子用于控制打開的所有文件,比如說編碼方式等;
【常用函數(shù)】
代碼如下:
fileinput.input() #返回能夠用于for循環(huán)遍歷的對(duì)象
fileinput.filename() #返回當(dāng)前文件的名稱
fileinput.lineno() #返回當(dāng)前已經(jīng)讀取的行的數(shù)量(或者序號(hào))
fileinput.filelineno() #返回當(dāng)前讀取的行的行號(hào)
fileinput.isfirstline() #檢查當(dāng)前行是否是文件的第一行
fileinput.isstdin() #判斷最后一行是否從stdin中讀取
fileinput.close() #關(guān)閉隊(duì)列
【常見例子】
例子01: 利用fileinput讀取一個(gè)文件所有行
代碼如下:
>>> import fileinput
>>> for line in fileinput.input('data.txt'):
print line,
新聞熱點(diǎn)
疑難解答
圖片精選