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网络编程实例简析
Sep 26 Python
Python中__new__与__init__方法的区别详解
May 04 Python
python使用fork实现守护进程的方法
Nov 16 Python
python学习入门细节知识点
Mar 29 Python
django反向解析和正向解析的方式
Jun 05 Python
解决python报错MemoryError的问题
Jun 26 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
学习python分支结构
May 17 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
pycharm 对代码做静态检查操作
Jun 09 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
php设计模式 Singleton(单例模式)
2011/06/26 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Python匿名函数及应用示例
2019/04/09 Python
python日期相关操作实例小结
2019/06/24 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
安全责任书范文
2014/03/12 职场文书
关于读书的演讲稿
2014/05/07 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
优秀班主任材料
2014/12/16 职场文书
2015年思想品德教学工作总结
2015/07/22 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
详细聊聊vue中组件的props属性
2021/11/02 Vue.js