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基础教程之常用运算符
Aug 29 Python
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
Python中统计函数运行耗时的方法
May 05 Python
Pytorch入门之mnist分类实例
Apr 14 Python
Python工厂函数用法实例分析
May 14 Python
Python机器学习库scikit-learn安装与基本使用教程
Jun 25 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
对python过滤器和lambda函数的用法详解
Jan 21 Python
Django 查询数据库并返回页面的例子
Aug 12 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
pycharm通过ssh连接远程服务器教程
Feb 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
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
jQuery 源码分析笔记(3) Deferred机制
2011/06/19 Javascript
js substr、substring和slice使用说明小记
2011/09/15 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
小学生国旗下演讲稿
2014/04/25 职场文书
党建工作经验交流材料
2014/05/25 职场文书
学校运动会霸气口号
2014/06/07 职场文书
法学院毕业生求职信
2014/06/25 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
实习工作表现评语
2014/12/31 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
Python中request的基本使用解决乱码问题
2022/04/12 Python