python檔案處理之fileinput

2022-05-17 03:35:39 字數 2563 閱讀 6322

fileinput模組可以對乙個或多個檔案中的內容進行迭代、遍歷等操作,我們常用的open函式是對乙個檔案進行讀寫操作。

fileinput模組的input()函式比open函式更高效和好用,體現在:

input()函式生成乙個迭代器,保證了在遇到大檔案的讀取時不會占用太大的記憶體。

用fileinput對檔案進行迴圈遍歷,格式化輸出,查詢、替換等操作,還能獲取每一行的行號等等,非常方便。

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

files:         # 

檔案的路徑列表,預設是stdin方式,多檔案['1.txt','2.txt',...]

inplace: #

是否將標準輸出的結果寫回檔案,預設不取代

backup: #

備份檔案的副檔名,只指定副檔名,如.bak。如果該檔案的備份檔案已存在,則會自動覆蓋。

bufsize: #

緩衝區大小,預設為0,如果檔案很大,可以修改此引數,一般預設即可

mode:      #

讀寫模式,預設為唯讀

openhook:    #

該鉤子用於控制開啟的所有檔案,比如說編碼方式等;

函式描述

input([files[, inplace[, backup]]]) 

幫助迭代多個輸入流中的行

filename() 

返回當前檔案的名稱

lineno()  

返回(累計的)當前行號

filelineno()

返回在當前檔案中的行號

isfirstline()

檢查當前行是否是檔案中的第一行

isstdin()

檢查最後一行是否來自sys.stdin

nextfile()

關閉當前檔案並移到下乙個檔案

close()  

關閉序列

fileinput.input是最重要的函式,它返回乙個迭代器物件,如果要處理多個檔案,可以向這個函式提供乙個或多個檔名。

還可將引數inplace設定為true(inplace=true),對於你訪問的每一行,都需列印出替代內容,這些內容將被寫回到當前輸入檔案中,此時可選引數backup用於給從原始檔案建立的備份檔案指定副檔名。

1、讀取多個檔案

#

a.txt檔案的內容

"""我是好

人"""

#b.txt檔案的內容

"""他是壞

人"""

#讀取乙個檔案

for line in fileinput.input("

a.txt"):

print

(line)

#讀取多個檔案

for line in fileinput.input(["

a.txt

", "

b.txt

"]):

print(line)

2、修改檔案並備份原檔案

#

-*_ coding:utf-8 -*-

import

fileinput

for line in fileinput.input("

a.txt

", backup="

.bak

", inplace=true):

line = line.replace("

我", "小明"

)

print

(line)#結果

當前資料夾會生成a.txt.bak檔案,內容是之前的內容,

而a.txt檔案已經被修改了,把"我

"變成了"

小明"

3、輸出當前行號和行內容

#

-*_ coding:utf-8 -*-

import

fileinput

for line in fileinput.input("

a.txt"):

lineno =fileinput.filelineno()

print

lineno, line#結果

1我2是

3好、4 人

4、輸出檔名

#

-*_ coding:utf-8 -*-

import

fileinput

for line in fileinput.input("

a.txt"):

#在第一行前面先輸出檔名

iffileinput.isfirstline():

print

fileinput.filename()

print

line#結果

a.txt我是

好、人

其他函式,都是類似的使用方法,這裡就不全部介紹了。

Python之檔案處理

python檔案處理 簡單理解就是對檔案互動的處理過程,主要包含rw過程。當前目錄下建立檔案 f file aa.txt w 第乙個檔名,乙個是開啟f模式,模式主要有rwa r模式 直接讀取已經必須要存在的檔案,不存在話 報錯ioerror w模式 會直接建立乙個新的檔案,若存在直接覆蓋舊檔案 a追...

Python菜鳥 File 檔案 方法

file 物件使用 open 函式來建立,下表列出了 file 物件常用的函式 序號方法及描述 1file.close 關閉檔案。關閉後檔案不能再進行讀寫操作。2file.flush 重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案,而不是被動的等待輸出緩衝區寫入。3file.fileno ...

Python的file檔案方法

python的檔案物件涉及的方法彙總 要呼叫下列方法需先建立file物件 file.close 關閉檔案,這個就不用多說了,對檔案操作完之後都會呼叫 file.flush 重新整理檔案內部緩衝,立即寫入檔案。平常是等待close的時候在寫入 file.fileno 返回乙個整型的檔案描述符,就是系統...