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实现文件名批量替换和内容替换
Mar 20 Python
跟老齐学Python之集合的关系
Sep 24 Python
python访问抓取网页常用命令总结
Apr 11 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
Jul 06 Python
Python如何实现强制数据类型转换
Nov 22 Python
python自动识别文本编码格式代码
Dec 26 Python
python 多线程死锁问题的解决方案
Aug 25 Python
手把手教你使用TensorFlow2实现RNN
Jul 15 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 Python
图神经网络GNN算法
May 11 Python
Python如何利用pandas读取csv数据并绘图
Jul 07 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
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
2014/07/01 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
python中实现定制类的特殊方法总结
2014/09/28 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
解决Django连接db遇到的问题
2019/08/29 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
辩护词范文大全
2015/05/21 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书