python文件处理fileinput使用方法详解


Posted in Python onJanuary 02, 2020

这篇文章主要介绍了python文件处理fileinput使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、介绍

fileinput模块可以对一个或多个文件中的内容进行迭代、遍历等操作,我们常用的open函数是对一个文件进行读写操作。

fileinput模块的input()函数比open函数更高效和好用,体现在:

input()函数生成一个迭代器,保证了在遇到大文件的读取时不会占用太大的内存。
用fileinput对文件进行循环遍历,格式化输出,查找、替换等操作,还能获取每一行的行号等等,非常方便。

二、fileinput读取文件函数input的使用格式

fileinput.input (files='filename', inplace=False, backup='', bufsize=0, mode='r', openhook=None)

files:     # 文件的路径列表,默认是stdin方式,多文件['1.txt','2.txt',...]
inplace:    # 是否将标准输出的结果写回文件,默认不取代
backup:    # 备份文件的扩展名,只指定扩展名,如.bak。如果该文件的备份文件已存在,则会自动覆盖。
bufsize:    # 缓冲区大小,默认为0,如果文件很大,可以修改此参数,一般默认即可
mode:

# 读写模式,默认为只读
openhook:
  # 该钩子用于控制打开的所有文件,比如说编码方式等;

三、fileinput中的常用函数

函数 描述
input([files[, inplace[, backup]]])  帮助迭代多个输入流中的行
filename()  返回当前文件的名称
lineno()   返回(累计的)当前行号
filelineno() 返回在当前文件中的行号
isfirstline() 检查当前行是否是文件中的第一行
isstdin() 检查最后一行是否来自sys.stdin
nextfile() 关闭当前文件并移到下一个文件
close()   关闭序列

fileinput.input是最重要的函数,它返回一个迭代器对象,如果要处理多个文件,可以向这个函数提供一个或多个文件名。

还可将参数inplace设置为True(inplace=True),对于你访问的每一行,都需打印出替代内容,这些内容将被写回到当前输入文件中,此时可选参数backup用于给从原始文件创建的备份文件指定扩展名。

四、示例

1、读取多个文件

# a.txt文件的内容
"""
我
是
好
人
"""

# b.txt文件的内容
"""
他
是
坏
人
"""

# 读取一个文件
for line in fileinput.input("a.txt"):
  print(line)


# 读取多个文件
for line in fileinput.input(["a.txt", "b.txt"]):
  print(line)

2、修改文件并备份原文件

# -*_ coding:utf-8 -*-
import fileinput
for line in fileinput.input("a.txt", backup=".bak", inplace=True):
  line = line.replace("我", "小明")
  print(line)

# 结果
当前文件夹会生成a.txt.bak文件,内容是之前的内容,
而a.txt文件已经被修改了,把"我"变成了"小明"

3、输出当前行号和行内容

# -*_ coding:utf-8 -*-
import fileinput

for line in fileinput.input("a.txt"):
  lineno = fileinput.filelineno()
  print lineno, line

# 结果
1 我
2 是
3 好、
4 人

4、输出文件名

# -*_ coding:utf-8 -*-
import fileinput
for line in fileinput.input("a.txt"):
  # 在第一行前面先输出文件名
  if fileinput.isfirstline():
    print fileinput.filename()
  print line
# 结果
a.txt
我
是
好、
人

其他函数,都是类似的使用方法,这里就不全部介绍了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现批量转换文件编码的方法
Jul 28 Python
Python实例一个类背后发生了什么
Feb 09 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
Jun 30 Python
Python之批量创建文件的实例讲解
May 10 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
详解用python写网络爬虫-爬取新浪微博评论
May 10 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
TensorFlow使用Graph的基本操作的实现
Apr 22 Python
python神经网络编程实现手写数字识别
May 27 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 #Python
Pytorch的mean和std调查实例
Jan 02 #Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 #Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 #Python
pytorch实现focal loss的两种方式小结
Jan 02 #Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 #Python
基于torch.where和布尔索引的速度比较
Jan 02 #Python
You might like
php 生成唯一id的几种解决方法
2013/03/08 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JavaScript中的对象化编程
2008/01/16 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
Python实现画图软件功能方法详解
2020/07/28 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
小学生美德少年事迹
2014/02/02 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
生日庆典策划方案
2014/06/02 职场文书
音乐教师求职信
2014/06/28 职场文书
2014年世界艾滋病日演讲稿
2014/11/28 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
感恩教师主题班会
2015/08/12 职场文书
新兵入伍决心书
2015/09/22 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python