||
参考: http://c.biancheng.net/view/2547.html
https://www.cnblogs.com/jinjiangongzuoshi/p/5637793.html
fileinput模块是python的标准库之一,不属于第三方库,随python安装包自带
用fileinput对文件进行循环遍历,格式化输出,查找、替换等操作,非常方便,fileinput 模块提供了如下函数可以把多个输入流合并在一起:
fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r',openhook=None)
files: #文件的路径列表,默认是stdin方式,多文件; 用法:[
'1.txt'
,
'2.txt'
,...]
inplace: #是否将标准输出的结果写回文件,默认不取代;
backup: #备份文件的扩展名,只指定扩展名,如.bak。如果该文件的备份文件已存在,则会自动覆盖;
bufsize: #缓冲区大小,默认为0,如果文件很大,可以修改此参数,一般默认即可;
mode: #读写模式,默认为只读;
openhook: #该钩子用于控制打开的所有文件,比如说编码方式等
该函数中的 files 参数用于指定多个文件输入流。该函数返回一个 FileInput 对象。
当程序使用上面函数创建了 FileInput 对象之后,即可通过 for 循环来遍历文件的每一行。
典型用法:
import fileinput
for line in fileinput.input():
process(line)
此外,fileinput 还提供了如下全局函数来判断正在读取的文件信息:
fileinput.filename():返回正在读取的文件的文件名。
fileinput.fileno():返回当前文件的文件描述符(file descriptor),该文件描述符是一个整数。
文件描述符是一个文件的代号,其值为一个整数。后续章节将会介绍关于文件描述符的操作。
fileinput.lineno():返回当前读取的行号。
fileinput.filelineno():返回当前读取的行在其文件中的行号。
fileinput.isfirstline():返回当前读取的行在其文件中是否为第一行。
fileinput.isstdin():返回最后一行是否从 sys.stdin 读取。程序可以使用“-”代表从 sys.stdin 读取。
fileinput.nextfile():关闭当前文件,开始读取下一个文件。
fileinput.close():关闭 FileInput 对象。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-4-28 00:41
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社