熱線電話:13121318867

登錄
首頁精彩閱讀Python中的fileinput模塊的簡單實用示例
Python中的fileinput模塊的簡單實用示例
2018-02-02
收藏

Python中的fileinput模塊的簡單實用示例

這幾天有這樣一個需求,要將用戶登陸系統的信息統計出來,做成一個報表。當用戶登陸成功的時候,服務器會往日志文件里寫一條像下面這種格式的記錄:”日期時間@用戶名@IP“,這樣的日志文件第天生成一個。所以,我們只要編歷這些日志文件,將所有的登陸信息提取出來,并重新組織數據格式就可以了。

python寫一個分析工具非常簡單,你會說,用glob獲取所有的日志文件,然后對每個日志文件都open(logfile),再一行一行的讀??;或者用os.walk,也很簡單。其實,標準庫提供了另一個輔助模塊,我們可以非常方便的完成這個工作,那就是fileinput。下面我們就通過fileinput來編歷所有的D盤下的文本文件,將每一行的長度打印出來:    
import fileinput
from glob import glob
 
for line in fileinput.input(glob(r'd:/*.txt')):
  print fileinput.lineno(), u'文件:', fileinput.filename(), /
      u'行號:', fileinput.filelineno(), u'長度:', len(line.strip('/n'))
fileinput.close()

代碼非常簡單明了。input()接受要編歷的所有文件路徑的列表,通過filename()返回當前正在讀取的文件的文件名,filelineno()返回當前讀取的行的行號,而lineno()返回當前已經讀取的行的數量(或者序號)。其實,模塊內部通過FileInput類來實現文件的編歷讀取,input()在內部創建了該類的一個對象,當處理完數據行之后,通過fileinput.close()來關閉這個內部對象。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢