Python fileinput模块使用介绍


Posted in Python onNovember 30, 2014

fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行。它的工作方式和readlines很类似,不同点在于它不是将全部的行读到列表中而是创建了一个xreadlines对象。

下面是fileinput模块中的常用函数:

input()    #返回能够用于for循环遍历的对象
filename()  #返回当前文件的名称
lineno()   #返回当前已经读取的行的数量(或者序号)
filelineno() #返回当前读取的行的行号
isfirstline() #检查当前行是否是文件的第一行

创建测试文件test.txt:

# cat > test.txt << EOF
Hello,Python
3water.com
This is a test file
EOF

利用fileinput实现文件内容替换,如:file_input.p(注意文件名,别写成fileinput.py

#!/usr/bin/env python
import fileinput
for line in fileinput.input('test.txt',backup='_bak',inplace=1):
  print line.replace('Python','LinuxEye'),
fileinput.close()

inplace=1:标准输出会被重定向到打开文件;backup='_bak',:替换文件内容之前备份后缀以_bak结尾;另外,在调用fileinput.input()之后记得要fileinput.close()。
执行结果如下:

# python file_input.py #执行file_input.py
# ls test.txt*
test.txt test.txt_bak
 
# cat test.txt
Hello,LinuxEye
3water.com
This is a test file
 
# cat test.txt_bak
Hello,Python
3water.com
This is a test file

其他测试:

>>> import fileinput
>>> for line in fileinput.input('test.txt'):
...   print fileinput.filename(),fileinput.lineno(),fileinput.filelineno()
...
test.txt 1 1
test.txt 2 2
test.txt 3 3
>>> import fileinput
>>> for line in fileinput.input('test.txt'):
...   if fileinput.isfirstline():
...     print line,
...   else:
...     break
...
Hello,LinuxEye
Python 相关文章推荐
使用python实现扫描端口示例
Mar 29 Python
Python中让MySQL查询结果返回字典类型的方法
Aug 22 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
Python的高阶函数用法实例分析
Apr 11 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
tensorflow模型继续训练 fineturn实例
Jan 21 Python
python实现处理mysql结果输出方式
Apr 09 Python
Python文件时间操作步骤代码详解
Apr 13 Python
Python 列表list使用介绍
Nov 30 #Python
Python 字典dict使用介绍
Nov 30 #Python
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 #Python
Linux下Python获取IP地址的代码
Nov 30 #Python
Python re模块介绍
Nov 30 #Python
Python os模块介绍
Nov 30 #Python
Python实现的检测网站挂马程序
Nov 30 #Python
You might like
浅析PHP绘图技术
2013/07/03 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
JS Timing
2007/04/21 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
Python 查看文件的读写权限方法
2018/01/23 Python
python实现ID3决策树算法
2018/08/29 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Python验证码截取识别代码实例
2020/05/16 Python
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
工商管理应届生求职信
2013/10/07 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
营销团队口号
2014/06/06 职场文书
餐厅周年庆活动方案
2014/08/25 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
美容院管理规章制度
2015/08/05 职场文书
诚信教育主题班会
2015/08/13 职场文书
银行服务理念口号
2015/12/25 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
MYSQL如何查看进程和kill进程
2022/03/13 MySQL