python:将两个文件作为一个文件对象打开

时间:2013-03-27 13:56:04

标签: python

我有两个文件:标题和正文。我使用库来阅读整个内容。我可以使用“fileinput.input”创建一个FileInput对象,并将其交给读取数据的库。问题是FileInput对象没有库似乎期望的'.read'属性。

我需要一个带有.read的FileObject,就像将两个文件一起读取一样。

任何想法现有解决方法?是的,我知道我可以一起构建自己的小班或猫文件。只是想知道是否有一些我从未听说过的神奇的FileObject木匠。

3 个答案:

答案 0 :(得分:2)

如果您的库从具有.read()的文件中读取,则将多个文件对象合并为一个抽象概念并不重要。阅读所有内容并将其投入StringIO

非常简单

答案 1 :(得分:1)

如果您只想在文件上调用readline(),请尝试以下方法:

def cat(*args):
    for arg in args:
        with open(arg,'r') as f:
            for line in f:
                yield line

for line in cat('/tmp/x1','/tmp/x2'):
    processLine(line)

答案 2 :(得分:1)

您的文件对象已经可以通过生成器进行迭代,因此只需使用itertools将它们链接成一个大的可迭代文件。

import itertools
all_the_things = itertools.chain(HeaderFile, BodyFile)
for line in all_the_things:
   # your code here