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操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
Python实现栈的方法
May 26 Python
Python中类型检查的详细介绍
Feb 13 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
解决phantomjs截图失败,phantom.exit位置的问题
May 17 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
Django 请求Request的具体使用方法
Nov 11 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
python 如何用map()函数创建多线程任务
Apr 07 Python
python批量创建变量并赋值操作
Jun 03 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代码
2010/08/08 PHP
PHP队列用法实例
2014/11/05 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
JS实现页面侧边栏效果探究
2021/01/08 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
在Django中创建动态视图的教程
2015/07/15 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
Python with语句和过程抽取思想
2019/12/23 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
日语专业推荐信
2013/11/12 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers