首页IT科技python file stdin(Python模块学习 fileinput 成长的点滴,记录与分享 博客频道 CSDN.NET)

python file stdin(Python模块学习 fileinput 成长的点滴,记录与分享 博客频道 CSDN.NET)

时间2025-08-05 10:19:24分类IT科技浏览4600
导读:分类: Python 2010-11-03 14:10...

分类: Python 2010-11-03 14:10 1240人阅读 评论(1) 收藏 举报

这几天有这样一个需求              ,要将用户登陆系统的信息统计出来                     ,做成一个报表              。当用户登陆成功的时候      ,服务器会往日志文件里写一条像下面这种格式的记录:              ”日期时间@用户名@IP“       ,这样的日志文件第天生成一个                     。所以                     ,我们只要编历这些日志文件             ,将所有的登陆信息提取出来       ,并重新组织数据格式就可以了      。用python写一个分析工具非常简单                     ,你会说             ,用glob获取所有的日志文件,然后对每个日志文件都open(logfile)                     ,再一行一行的读取;或者用os.walk                    ,也很简单       。其实,标准库提供了另一个辅助模块              ,我们可以非常方便的完成这个工作                    ,那就是fileinput                     。下面我们就通过fileinput来编历所有的D盘下的文本文件      ,将每一行的长度打印出来:

[python] view plaincopyprint?
importfileinput fromglobimportglob forlineinfileinput.input(glob(rd:/*.txt)): printfileinput.lineno(),u文件:,fileinput.filename(),/ u行号:,fileinput.filelineno(),u长度:,len(line.strip(/n)) fileinput.close()
import fileinput from glob import glob for line in fileinput.input(glob(rd:/*.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()来关闭这个内部对象                     。

模块非常简单                     ,详细的内容可以参数标准库手册             。

声明:本站所有文章             ,如无特殊说明或标注,均为本站原创发布。任何个人或组织                     ,在未征得本站同意时                    ,禁止复制              、盗用                     、采集      、发布本站内容到任何网站       、书籍等各类媒体平台                     。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理                    。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
wordpress插件汉化工具(解锁您的WordPress多语言插件,助您打开全球市场!)