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编程中归并排序算法的实现步骤详解
May 04 Python
浅析python中的分片与截断序列
Aug 09 Python
Python实现简单的四则运算计算器
Nov 02 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
Python 实现Image和Ndarray互相转换
Feb 19 Python
深入浅析python变量加逗号,的含义
Feb 22 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
python如何在word中存储本地图片
Apr 07 Python
python基于tkinter制作m3u8视频下载工具
Apr 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读取csv实现csv文件下载功能
2013/12/18 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
event对象的方法 兼容多浏览器
2009/06/27 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
2020/11/11 Javascript
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
Python文件的读写和异常代码示例
2017/10/31 Python
使用apidoc管理RESTful风格Flask项目接口文档方法
2018/02/07 Python
利用python画出折线图
2018/07/26 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
python 导入数据及作图的实现
2019/12/03 Python
python和js交互调用的方法
2020/06/23 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
医药工作岗位求职信分享
2013/12/31 职场文书
总经理岗位职责范本
2014/02/02 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python
MySQL的安装与配置详细教程
2021/06/26 MySQL