【Python】模組 fileinput

楊奇龍發表於2017-07-30
一 簡介
   是python 提供的一個可以快速遍歷,修改一個或者多個檔案的模組。我們可以使用該模組進行文字替換 並做檔案備份。
二 使用
2.1 使用方法
fileinput.input (files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
files   為要讀入的檔案 或者檔案列表 files=1.txt files=['1.txt','2.txt']
inplace 是原地替換與否,為True時表示重寫原檔案。預設為False。
backup  備份要替換的檔案的字尾  backup='.bak'  files='1.txt' 備份的檔名稱為  1.txt.bak
mode    讀寫模式,預設為只讀  
bufsize 讀寫檔案的緩衝區大小,預設為0 ,如果檔案比較大 則需要調整該值。

  1. import fileinput
  2. def process(line):
  3.    do_something

  4. for line in fileinput.input():
  5.     process(line) #處理檔案的行 然後重新寫入原始檔
2.2 常用的函式:
  1. fileinput.input() # 讀取檔案的內容
  2. fileinput.filename() # 檔案的名稱
  3. fileinput.lineno() # 當前讀取行的數量
  4. fileinput.filelineno() # 讀取行的行號
  5. fileinput.isfirstline() # 當前行是否是檔案第一行
  6. fileinput.isstdin() # 判斷最後一行是否從stdin中讀取
  7. fileinput.close() # 關閉佇列
2.3 例子

  1. In [4]: for line in fileinput.input('1.txt',inplace=1,backup='.bak'):
  2.    ...: print line.rstrip() + ' line'
  3.    ...:
  4. In [5]: pwd
  5. Out[5]: u'/Users/yangyi'
  6. In [6]: ls 1.txt*
  7. 1.txt
  8. 1.txt.bak
檢視備份檔案
  1. In [7]: cat 1.txt.bak
  2. AA:BB:CC
  3. aa:30:6
  4. cc:50:3
  5. dd:20:7
  6. bb:10:2
  7. ee:40:4
  8. ee:60:1
檢視原始檔,已經被修改了 
  1. In [8]: cat 1.txt
  2. AA:BB:CC line
  3. aa:30:6 line
  4. cc:50:3 line
  5. dd:20:7 line
  6. bb:10:2 line
  7. ee:40:4 line
  8. ee:60:1 line
三 小結
  本文是簡單介紹了fileinput 的使用方式 ,具體更詳細的內容可以參考  

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

相關文章