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 相关文章推荐
Django如何实现内容缓存示例详解
Sep 24 Python
python实现基于SVM手写数字识别功能
May 27 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
Django框架使用富文本编辑器Uedit的方法分析
Jul 31 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
python游戏开发的五个案例分享
Mar 09 Python
Python如何实现感知器的逻辑电路
Dec 25 Python
python抢购软件/插件/脚本附完整源码
Mar 04 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
用Python仅20行代码编写一个简单的端口扫描器
Apr 08 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删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
js对象的构造和继承实现代码
2010/12/05 Javascript
js动态添加表格数据使用insertRow和insertCell实现
2014/05/22 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
JavaScript实现表单验证功能
2020/12/09 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python 加密与解密小结
2018/12/06 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
计算机应用职专应届生求职信
2013/11/12 职场文书
小学语文教学反思
2014/02/10 职场文书
表彰大会主持词
2014/03/26 职场文书
生产助理岗位职责
2014/06/18 职场文书
民事起诉书范本
2015/05/19 职场文书
毕业证明模板
2015/06/19 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python