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中expandtabs()方法的使用
May 18 Python
在Django中进行用户注册和邮箱验证的方法
May 09 Python
玩转python selenium鼠标键盘操作(ActionChains)
Apr 12 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
Python 经典算法100及解析(小结)
Sep 13 Python
python flask中动态URL规则详解
Nov 22 Python
基于Tensorflow高阶读写教程
Feb 10 Python
python操作toml文件的示例代码
Nov 27 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 Python
详解python日志输出使用配置文件格式
Feb 10 Python
python爬取某网站原图作为壁纸
Jun 02 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 empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
Cookie 小记
2010/04/01 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
Jquery选择子控件"大于号"和" "区别介绍及使用示例
2013/06/25 Javascript
javascript异步处理工作机制详解
2015/04/13 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
pygame学习笔记(4):声音控制
2015/04/15 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Python3 实现爬取网站下所有URL方式
2020/01/16 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
教师一岗双责责任书
2014/04/16 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
2015年宣传工作总结
2015/04/08 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书