天天看點

python - 檔案目錄操作 之 file檔案讀寫 - fileinput多文本

    fileinput子產品可以對一個或多個檔案中的内容進行疊代、周遊等操作。該子產品的input()函數有點類似檔案readlines()方法,差別在于前者是一個疊代對象,需要用for循環疊代,後者是一次性讀取所有行。用fileinput對檔案進行循環周遊,格式化輸出,查找、替換等操作,非常友善。

【預設格式】

fileinput.input (files='filename', inplace=False, backup='', bufsize=0, mode='r', openhook=None)

1 files: #檔案的路徑清單,預設是stdin方式,多檔案['1.txt','2.txt',...] 2 inplace: #是否将标準輸出的結果寫回檔案,預設不取代 3 backup: #備份檔案的擴充名,隻指定擴充名,如.bak。如果該檔案的備份檔案已存在,則會自動覆寫。 4 bufsize: #緩沖區大小,預設為0,如果檔案很大,可以修改此參數,一般預設即可 5 mode:       #讀寫模式,預設為隻讀 6 openhook:    #該鈎子用于控制打開的所有檔案,比如說編碼方式等;

【常用函數】

1 fileinput.input() #傳回能夠用于for循環周遊的對象 2 fileinput.filename() #傳回目前檔案的名稱 3 fileinput.lineno() #傳回目前已經讀取的行的數量(或者序号) 4 fileinput.filelineno() #傳回目前讀取的行的行号 5 fileinput.isfirstline() #檢查目前行是否是檔案的第一行 6 fileinput.isstdin() #判斷最後一行是否從stdin中讀取 7 fileinput.close() #關閉隊列

1、使用fileinput檢視檔案所有行    

import fileinput

for line in fileinput.input('user.txt'):

     print(line)

1、使用fileinput檢視檔案所有行    

import fileinput

for line in fileinput.input('e:/test.txt'):

     print(line)

2、使用fileinput修改檔案并備份原檔案

import fileinput

for line in fileinput.input('user.txt',backup='.bak',inplace=1):

   line = line.replace('Rain','Jerry')

   print(line)

3、使用fileinput輸出目前行号和行内容

#cat user.txt Jack Rain Tom Suse #################################################### #cat f_replace.py #!/usr/bin/env python import fileinput for line in fileinput.input('user.txt'): lineno = fileinput.lineno() print(lineno,line) #################################################### #執行代碼 #python f_replace.py #輸出結果 1 Jack 2 Rain 3 Tom 4 Suse

4、使用fileinput判斷是否為第一行

#cat user.txt Jack Rain Tom Suse #################################################### #cat f_replace.py #!/usr/bin/env python import fileinput for line in fileinput.input('user.txt'): if fileinput.isfirstline(): print(line) break #################################################### #執行代碼 #python f_replace.py #輸出結果 Jack