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实现数据库并行读取和写入实例
Jun 09 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
python数字图像处理之高级形态学处理
Apr 27 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python中dict和set的用法讲解
Mar 28 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
centos7中安装python3.6.4的教程
Dec 11 Python
Python tkinter三种布局实例详解
Jan 06 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
Tensorflow进行多维矩阵的拆分与拼接实例
Feb 07 Python
pyqt5实现井字棋的示例代码
Dec 07 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python实现的批量下载RFC文档
2015/03/10 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
详解Python中的文件操作
2016/08/28 Python
详解python中的装饰器
2018/07/10 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
matplotlib实现区域颜色填充
2019/03/18 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
十八大演讲稿
2014/05/22 职场文书
大连导游词
2015/02/12 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
交通事故起诉书
2015/05/19 职场文书
法院执行局工作总结
2015/08/11 职场文书
用Python创建简易网站图文教程
2021/06/11 Python