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实现bitmap数据结构详解
Feb 17 Python
Python WXPY实现微信监控报警功能的代码
Oct 20 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
pandas带有重复索引操作方法
Jun 08 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
python实现在一个画布上画多个子图
Jan 19 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 Python
Python select及selectors模块概念用法详解
Jun 22 Python
Python安装第三方库攻略(pip和Anaconda)
Oct 15 Python
ASP.NET Core中的配置详解
Feb 05 Python
Python爬取酷狗MP3音频的步骤
Feb 26 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 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递归方法实现无限分类实例代码
2014/02/28 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
js HTML5多图片上传及预览实例解析(不含前端的文件分割)
2016/08/26 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
Django实现自定义404,500页面教程
2017/03/26 Python
Java及python正则表达式详解
2017/12/27 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
司机的工作范围及职责
2013/11/13 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
保护环境的建议书
2014/03/12 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL