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 相关文章推荐
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
python3使用QQ邮箱发送邮件
May 20 Python
python实现海螺图片的方法示例
May 12 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
django 中使用DateTime常用的时间查询方式
Dec 03 Python
python中如何写类
Jun 29 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
Python初学者必备的文件读写指南
Jun 23 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脚本中include文件出错解决方法
2008/11/20 PHP
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
python 异常处理总结
2016/10/18 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
Python实现通讯录功能
2018/02/22 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python实现支付宝转账接口
2019/05/07 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
英国精品买手店:Browns Fashion
2016/09/29 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
生日寄语大全
2014/04/08 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
2014和解协议书范文
2014/09/15 职场文书
车辆委托书范本
2014/10/05 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js