python fileinput模块next_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()來關閉這個內部對象。
總結
以上是生活随笔為你收集整理的python fileinput模块next_Python中的fileinput模块的简单实用示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv 图像上画出目标运动的轨迹_
- 下一篇: python输入两个变量的值、输出大的_