Python中的fileinput模块的简单实用示例


Posted in Python onJuly 09, 2015

这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表。当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:”日期时间@用户名@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 相关文章推荐
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
python益智游戏计算汉诺塔问题示例
Mar 05 Python
python实现在pickling的时候压缩的方法
Sep 25 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
Python读取properties配置文件操作示例
Mar 29 Python
python对日志进行处理的实例代码
Oct 06 Python
Python实现的爬取小说爬虫功能示例
Mar 30 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
Python如何脚本过滤文件中的注释
May 27 Python
python在协程中增加任务实例操作
Feb 28 Python
尝试使用Python爬取城市租房信息
Apr 12 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 #Python
python冒泡排序简单实现方法
Jul 09 #Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 #Python
python简单猜数游戏实例
Jul 09 #Python
Python使用turtule画五角星的方法
Jul 09 #Python
python查看zip包中文件及大小的方法
Jul 09 #Python
Python基于checksum计算文件是否相同的方法
Jul 09 #Python
You might like
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
一步一步学习PHP(6) 面向对象
2010/02/16 PHP
php 上传功能实例代码
2010/04/13 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
python中列表和元组的区别
2017/12/18 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
Python绘图实现显示中文
2019/12/04 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
公司司机岗位职责
2014/02/07 职场文书
教师党员承诺书
2014/03/25 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS