Python模块学习 ---- fileinput - 成长的点滴,记录与分享 - 博客频道 - CSDN.NET
2012-10-09 19:11
831 查看
python 2.4 containing this module
Python模块学习 ---- fileinput - 成长的点滴,记录与分享 - 博客频道 - CSDN.NET
[python] view plaincopyprint?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()
模块非常简单,详细的内容可以参数标准库手册。
Python模块学习 ---- fileinput - 成长的点滴,记录与分享 - 博客频道 - CSDN.NET
Python模块学习 ---- fileinput
分类: Python 2010-11-03 14:10 1240人阅读 评论(1) 收藏 举报 这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表。当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:”日期时间@用户名@IP“,这样的日志文件第天生成一个。所以,我们只要编历这些日志文件,将所有的登陆信息提取出来,并重新组织数据格式就可以了。用python写一个分析工具非常简单,你会说,用glob获取所有的日志文件,然后对每个日志文件都open(logfile),再一行一行的读取;或者用os.walk,也很简单。其实,标准库提供了另一个辅助模块,我们可以非常方便的完成这个工作,那就是fileinput。下面我们就通过fileinput来编历所有的D盘下的文本文件,将每一行的长度打印出来:[python] view plaincopyprint?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()
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模块学习 ---- logging 日志记录(一) - 成长的点滴,记录与分享 - 博客频道 - CSDN.NET
- python之强大的日志模块 - 竹叶青 的专栏 - 博客频道 - CSDN.NET
- android自动化之MonkeyRunner测试环境配置(一) - 记录那点滴的改变的专栏 - 博客频道 - CSDN.NET
- python中做层次聚类,使用scipy.cluster.hierarchy.fclusterdata方法 - Waleking的专栏 - 博客频道 - CSDN.NET
- Lisp的给力特性(V.S. Python3) 第二篇 - 程序即人生 - 博客频道 - CSDN.NET
- 自学python-django已经有一段时间。从今天开始写博客记录点滴经验与大家分享。
- 知道csdn 的存在,开通博客,记录自己学习python经历的小发现及历程
- CSDN博客,记录生活学习科研点滴
- CSDN第一篇博客,记录我成长点滴
- import,reload,__import__在python中的区别 - 像风一样的自由 - 博客频道 - CSDN.NET
- 阿里云X-Forwarded-For 发现tomcat记录的日志全部来自于SLB转发的IP地址,不能获取到请求的真实IP。 - Draco - 博客频道 - CSDN.NET
- Thrift 学习笔记1——Ubuntu环境下Thrift的安装、编译以及测试 - 张进の专栏 - 博客频道 - CSDN.NET
- python manage.py runserver 0.0.0.0:8000 - zkz的专栏 - 博客频道 - CSDN.NET
- 学习新技能的37个最佳网站 - levy_cui 博客 - 博客频道 - CSDN.NET http://blog.csdn.net/levy_cui/article/details/51151224
- 解决基于BAE python+bottle开发上的一系列问题 - artwebs - 博客频道 - CSDN.NET
- 开通csdn博客。记录自己点滴成长
- 现在才认识的博客对自己的作用,以后好好利用,记录自己成长的过程,和学习的点滴
- 【FPGA黑金开发板】Verilog HDL那些事儿--串口模块(十一) - 黄世增 的博客 - 博客频道 - CSDN.NET
- 可动态扩展的分库分表策略浅谈 - 工作点滴 - 博客频道 - CSDN.NET
- python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET