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实现通过shelve修改对象实例
Sep 26 Python
跟老齐学Python之类的细节
Oct 13 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
学生信息管理系统Python面向对象版
Jan 30 Python
python把转列表为集合的方法
Jun 28 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
wxPython实现分隔窗口
Nov 19 Python
python with (as)语句实例详解
Feb 04 Python
Github 使用python对copilot做些简单使用测试
Apr 14 Python
如何利用python实现列表嵌套字典取值
Jun 10 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
js获取php变量的实现代码
2013/08/10 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
python通过opencv实现批量剪切图片
2017/11/13 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
python zip()函数使用方法解析
2019/10/31 Python
python反转列表的三种方式解析
2019/11/08 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Python matplotlib可视化实例解析
2020/06/01 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
python实现计算图形面积
2021/02/22 Python
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
师范教师毕业鉴定
2014/01/13 职场文书
迟到检讨书5000字
2014/01/31 职场文书
法人授权委托书格式
2014/04/08 职场文书
公司运动会策划方案
2014/05/25 职场文书
银行奉献演讲稿
2014/09/16 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
网聊搭讪开场白
2015/05/28 职场文书
酒桌上的开场白
2015/06/01 职场文书