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 SQLite3数据库操作类分享
Jun 10 Python
Python实现的数据结构与算法之基本搜索详解
Apr 22 Python
Python中的id()函数指的什么
Oct 17 Python
python生成二维码的实例详解
Oct 29 Python
Java及python正则表达式详解
Dec 27 Python
python3解析库pyquery的深入讲解
Jun 26 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
python打包成so文件过程解析
Sep 28 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
用python制作个视频下载器
Feb 01 Python
python使用pymysql模块操作MySQL
Jun 16 Python
Django REST framework 限流功能的使用
Jun 24 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网上调查系统
2006/10/09 PHP
php 购物车完整实现代码
2014/06/05 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP对象相关知识总结
2017/04/09 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
node.js中的fs.close方法使用说明
2014/12/17 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
python 线程的五个状态
2020/09/22 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
英国翻新电子产品购物网站:Tech Trade
2017/12/25 全球购物
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
毕业生个人的求职信范文
2013/12/03 职场文书
公司管理建议书范文
2014/03/12 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
新党章的学习心得体会
2014/11/07 职场文书
师德承诺书
2015/01/20 职场文书
中班教师个人总结
2015/02/05 职场文书
军训通讯稿范文
2015/07/18 职场文书
电台广播稿范文
2015/08/19 职场文书