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批量提交沙箱问题实例
Oct 08 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
Apr 24 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
Python FtpLib模块应用操作详解
Dec 12 Python
Python求平面内点到直线距离的实现
Jan 19 Python
Python多个装饰器的调用顺序实例解析
May 22 Python
django 模型字段设置默认值代码
Jul 15 Python
一文详述 Python 中的 property 语法
Sep 01 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 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
深入extjs与php参数交互的详解
2013/06/25 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
网页常用特效代码整理
2006/06/23 Javascript
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
jupyter 添加不同内核的操作
2021/02/06 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
法人代表任命书范本
2014/06/05 职场文书
基层党支部承诺书
2015/04/30 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
鸡毛信观后感
2015/06/11 职场文书
董存瑞观后感
2015/06/11 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Python下opencv库的安装过程及问题汇总
2021/06/11 Python