fileinput模块 相对于open函数 的优点

发布时间 2023-06-20 11:27:36作者: sangern

fileinput模块可以对一个或多个文件中的内容进行迭代、遍历等操作,的open函数是对一个文件进行读写操作;
fileinput.input()函数生成一个迭代器,遇到大文件的读取时不会占用太大的内存;
fileinput对文件进行循环遍历,格式化输出,查找、替换等操作,还能获取每一行的行号等等

def input(files=None, inplace=False, backup="", bufsize=0, mode="r", openhook=None):

files: # 文件的路径列表。此参数为空默认是stdin方式;单文件files=('0.txt',);多文件files=('0.txt','1.txt') 元组或者列表形式传参
inplace: # 是否将标准输出的结果写回文件,默认不取代
backup: # 备份文件的扩展名,只指定扩展名,如.bak。文件名默认原文件名,备份文件名为“0.txt.bak”。如果该文件的备份文件已存在,则会自动覆盖。
bufsize: # 缓冲区大小,默认为0,如果文件很大,可以修改此参数,一般默认即可
mode:   # 读写模式,默认为只读(class FileInput中有('r', 'rU', 'U', 'rb')四种模式,据说3.4 版后已移除 'rU' 和 'U' 模式)
openhook: # 该钩子用于控制打开的所有文件,比如说编码方式等;

钩子hook,顾名思义,可以理解是一个挂钩,作用是有需要的时候挂一个东西上去。具体的解释是:钩子函数是把我们自己实现的hook函数在某一时刻挂接到目标挂载点上。