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监控网卡流量并使用graphite绘图的示例
Apr 27 Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
python计算导数并绘图的实例
Feb 29 Python
Django ModelForm组件原理及用法详解
Oct 12 Python
Python爬虫之Selenium库的使用方法
Jan 03 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过滤XSS攻击的函数
2013/11/12 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
jQuery级联操作绑定事件实例
2014/09/02 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
vue-music关于Player播放器组件详解
2017/11/28 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
Python标准库与第三方库详解
2014/07/22 Python
Python中的super用法详解
2015/05/28 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
保护环境标语
2014/06/09 职场文书
作风大整顿心得体会
2014/09/10 职场文书
纪律委员竞选稿
2015/11/19 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python