Python使用fileinput模块如何实现逐行读取多个文件-创新互联
今天就跟大家聊聊有关Python使用 fileinput模块如何实现逐行读取多个文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
成都创新互联秉承实现全网价值营销的理念,以专业定制企业官网,成都网站制作、做网站,小程序制作,网页设计制作,手机网站制作设计,营销型网站帮助传统企业实现“互联网+”转型升级专业定制企业官网,公司注重人才、技术和管理,汇聚了一批优秀的互联网技术人才,对客户都以感恩的心态奉献自己的专业和所长。Python 提供了 fileinput 模块,通过该模块中的 input() 函数,我们能同时打开指定的多个文件,还可以逐个读取这些文件中的内容。
fileinput 模块中 input() 该函数的语法格式如下:
fileinput.input(files="filename1, filename2, ...", inplace=False, backup='', bufsize=0, mode='r', openhook=None)
此函数会返回一个 FileInput 对象,它可以理解为是将多个指定文件合并之后的文件对象。其中,各个参数的含义如下:
- files:多个文件的路径列表;
- inplace:用于指定是否将标准输出的结果写回到文件,此参数默认值为 False;
- backup:用于指定备份文件的扩展名;
- bufsize:指定缓冲区的大小,默认为 0;
- mode:打开文件的格式,默认为 r(只读格式);
- openhook:控制文件的打开方式,例如编码格式等。
注意,和 open() 函数不同,input() 函数不能指定打开文件的编码格式,这意味着使用该函数读取的所有文件,除非以二进制方式进行读取,否则该文件编码格式都必须和当前操作系统默认的编码格式相同,不然 Python 解释器可能会提示 UnicodeDecodeError 错误。
和 open() 函数返回单个的文件对象不同,fileinput 对象无需调用类似 read()、readline()、readlines() 这样的函数,直接通过 for 循环即可按次序读取多个文件中的数据。
值得一提的是,fileinput 模块还提供了很多使用的函数(如表 1 所示),通过调用这些函数,可以帮我们更快地实现想要的功能。
表 fileinput 模块常用函数
函数名 | 功能描述 |
---|---|
fileinput.filename() | 返回当前正在读取的文件名称。 |
fileinput.fileno() | 返回当前正在读取文件的文件描述符。 |
fileinput.lineno() | 返回当前读取了多少行。 |
fileinput.filelineno() | 返回当前正在读取的内容位于当前文件中的行号。 |
fileinput.isfirstline() | 判断当前读取的内容在当前文件中是否位于第 1 行。 |
fileinput.nextfile() | 关闭当前正在读取的文件,并开始读取下一个文件。 |
fileinput.close() | 关闭 FileInput 对象。 |
文件描述符是一个文件的代号,其值为一个整数。后续章节将会介绍关于文件描述符的操作。
讲了这么多,接下来举个例子。假设使用 input() 读取 2 个文件,分别为 my_file.txt 和 file.txt,它们位于同一目录
下面程序演示了如何使用 input() 函数依次读取这 2 个文件:
import fileinput
#使用for循环遍历 fileinput 对象
for line in fileinput.input(files=('my_file.txt', 'file.txt')):
# 输出读取到的内容
print(line)
# 关闭文件流
fileinput.close()
在使用 fileinput 模块中的 input() 函数之前,一定要先引入 fileinput 模块。
看完上述内容,你们对Python使用 fileinput模块如何实现逐行读取多个文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联-成都网站建设公司行业资讯频道,感谢大家的支持。
网站栏目:Python使用fileinput模块如何实现逐行读取多个文件-创新互联
网站网址:http://cdiso.cn/article/gopop.html