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这两个文件,这样程序就可以直接遍历读取这两个文件的内容了。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python读取本地文件的实用方法12/03
- ♥ 如何在 Python 中将字符串转换为数字08/30
- ♥ python单下划线的含义11/09
- ♥ 如何在python中执行规范化?10/20
- ♥ python如何判断返回值类型10/02
- ♥ python的数学算法有哪些?如何使用它们?12/26
内容反馈