知行编程网知行编程网  2022-11-10 20:30 知行编程网 隐藏边栏  17 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python fileinput模块:逐行读取多个文件的相关知识,包括python读取多个文件,以及input标签file类型这些编程知识,希望对大家有参考作用。

Python文件输入模块:逐行读取多个文件

fileinput 模块提供以下功能来组合多个输入流:

fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None):该函数中的files参数用于指定多个文件输入流。该函数返回一个 FileInput 对象。

程序使用上述函数创建FileInput对象后,就可以通过for循环遍历文件的每一行。此外,fileinput 还提供了以下全局函数来判断正在读取的文件信息:

fileinput.filename():返回正在读取的文件的文件名。

fileinput.fileno():返回当前文件的文件描述符,为整数。

文件描述符是一个文件的代号,其值为一个整数。后续章节将会介绍关于文件描述符的操作。

fileinput.lineno():返回当前读取的行号。

fileinput.filelineno():返回当前读取的行在其文件中的行号。

fileinput.isfirstline():返回当前读取的行在其文件中是否为第一行。

fileinput.isstdin():返回最后一行是否从 sys.stdin 中读取。程序可以使用“-”来读取 sys.stdin。

fileinput.nextfile():关闭当前文件,开始读取下一个文件。

fileinput.close():关闭 FileInput 对象。

通过上面的介绍,不难发现fileinput也有一个缺陷,就是在创建FileInput对象的时候不能指定字符集,所以它读取的文件的字符集必须和默认字符一致一套操作系统。当然,如果文本文件的内容是纯英文,则不存在字符集问题。

下面程序示范了使用 fileinput 模块来读取多个文件:

import fileinput
# 一次读取多个文件
for line in fileinput.input(files=('info.txt', 'test.txt')):
    # 输出文件名,当前行在当前文件中的行号
    print(fileinput.filename(), fileinput.filelineno(), line, end='')
# 关闭文件流
fileinput.close()

上面的程序使用fileinput.input直接合并了info.txt和test.txt这两个文件,这样程序就可以直接遍历读取这两个文件的内容了。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享