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实现系统状态监测和故障转移实例方法
Nov 18 Python
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
Django通过dwebsocket实现websocket的例子
Nov 15 Python
Python面向对象之私有属性和私有方法应用案例分析
Dec 31 Python
python 发送get请求接口详解
Nov 17 Python
想学画画?python满足你!
Dec 24 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 Python
Python实现简单的俄罗斯方块游戏
Sep 25 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生成随机数或者字符串的代码
2008/09/05 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
Web前端开发工具——bower依赖包管理工具
2016/03/29 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
js实现无缝轮播图
2020/03/09 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Django封装交互接口代码
2020/07/12 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
考博专家推荐信
2014/05/10 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
2014年学校工作总结
2014/11/20 职场文书
英语演讲开场白
2015/05/29 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python