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基于有道实现英汉字典功能
Jul 25 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
Python操作json的方法实例分析
Dec 06 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
Oct 27 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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中循环语句的用法介绍
2012/01/30 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
json数据的列循环示例
2013/09/06 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
javascript操作符"!~"详解
2015/02/10 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
Python使用py2exe打包程序介绍
2014/11/20 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
selenium+python实现自动登录脚本
2018/04/22 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
中间件分为哪几类
2016/09/18 面试题
英语道歉信范文
2014/01/09 职场文书
高二生物教学反思
2014/01/27 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL