python中修改檔案行內容

z_paul發表於2021-09-09

fileinput模組提供處理一個或多個文字檔案的功能,可以透過使用for迴圈來讀取一個或多個文字檔案的所有行。它的工作方式和readlines很類似,不同點在於它不是將全部的行讀到列表中而是建立了一個xreadlines物件。
下面是fileinput模組中的常用函式:
input()    #返回能夠用於for迴圈遍歷的物件
filename()  #返回當前檔案的名稱
lineno()   #返回當前已經讀取的行的數量(或者序號)
filelineno() #返回當前讀取的行的行號
isfirstline() #檢查當前行是否是檔案的第一行
建立測試檔案test.txt:
#cat > test.txt Hello,Python

This is a test file
EOF
利用fileinput實現檔案內容替換,如:file_input.p(注意檔名,別寫成fileinput.py)
?
1
2
3
4
5
#!/usr/bin/env python
import fileinput
for line in fileinput.input('test.txt',backup='_bak',inplace=1):
print line.replace('Python','LinuxEye'),
fileinput.close()
inplace=1:標準輸出會被重定向到開啟檔案;backup='_bak',:替換檔案內容之前備份字尾以_bak結尾;另外,在呼叫fileinput.input()之後記得要fileinput.close()。
執行結果如下:
#python file_input.py #執行file_input.py
ls test.txt*
test.txt test.txt_bak

cat test.txt
Hello,LinuxEye

This is a test file

#cat test.txt_bak
Hello,Python

This is a test file

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/75/viewspace-2809696/,如需轉載,請註明出處,否則將追究法律責任。

相關文章