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实现的下载8000首儿歌的代码分享
Nov 21 Python
使用Python写个小监控
Jan 27 Python
django1.8使用表单上传文件的实现方法
Nov 04 Python
Python 实现选择排序的算法步骤
Apr 22 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
Python实现程序判断季节的代码示例
Jan 28 Python
python程序控制NAO机器人行走
Apr 29 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
Apache中php.ini的设置方法
2013/02/28 PHP
php无限遍历目录示例
2014/02/21 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
封装的原生javascript弹出层代码
2010/09/24 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
python通过socket查询whois的方法
2015/07/18 Python
python开根号实例讲解
2020/08/30 Python
python sleep和wait对比总结
2021/02/03 Python
Python如何telnet到网络设备
2021/02/18 Python
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
小学岗位竞聘方案
2014/01/22 职场文书
教师自我反思材料
2014/02/14 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
Mybatis是这样防止sql注入的
2021/12/06 Java/Android