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 24 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
python常见排序算法基础教程
Apr 13 Python
Python学习小技巧之利用字典的默认行为
May 20 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
python画折线图的程序
Jul 26 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
使用python对excel表格处理的一些小功能
Jan 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时间和日期函数详解
2015/05/08 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
删除重复数据的算法
2006/11/23 Javascript
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
简体中文转换繁体中文(实现代码)
2013/12/25 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
借款民事起诉状范文
2015/05/19 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
七年级数学教学反思
2016/02/17 职场文书
话题作文之呼唤
2019/12/18 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python