将多个文本文件视为一个大文件

时间:2014-03-21 11:53:46

标签: python

我有一个python程序,它将文本文件(或者更确切地说是File对象)作为输入。我有多个大文本文件,我想像一个连接文件一样对待,使用输入。不幸的是,由于篇幅限制,我很难明确地创建连接文件,因此我正在寻找一种优雅的方法来欺骗'该程序认为它毕竟只是一个文件。也就是说,当迭代完一个文件中的所有行时,我希望它从下一个文件开始,依此类推。建议?

2 个答案:

答案 0 :(得分:6)

fileinput模块执行此操作,docs

如果您的文件名全部在命令行中给出,那么它就像:

import fileinput

for line in fileinput.input():
    process(line)

否则,只需将列表中的文件名作为input的第一个参数。

答案 1 :(得分:1)

from itertools import chain

with open('foo') as foo, open('bar') as bar:
    for line in chain(foo, bar):
        print line,