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 01 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
Python 多线程的实例详解
Sep 07 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
Python用for循环实现九九乘法表
May 31 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
详解Python3中的 input() 函数
Mar 18 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
Python如何设置指定窗口为前台活动窗口
Aug 12 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 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
JS实现小米轮播图
2020/09/21 Javascript
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python中ConfigParse模块的用法
2014/09/29 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
Python面向对象之继承代码详解
2018/01/29 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
详解Python文件修改的两种方式
2019/08/22 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
Python新手学习标准库模块命名
2020/05/29 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
客服工作职责
2013/12/11 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
审美与表现自我评价
2015/03/09 职场文书
暑期家教宣传单
2015/07/14 职场文书
使用HttpSessionListener监听器实战
2022/03/17 Java/Android