python:将两个文件作为一个fileobject打开
我有两个文件:头文件和正文文件。我用图书馆来阅读整件事。我可以使用“fileinput.input”创建一个fileinput对象,并将其交给读取数据的库。问题是FileInput对象没有库所期望的“.read”属性 我需要一个带有.read的FileObject,就像将两个文件作为一个文件读取一样python:将两个文件作为一个fileobject打开,python,Python,我有两个文件:头文件和正文文件。我用图书馆来阅读整件事。我可以使用“fileinput.input”创建一个fileinput对象,并将其交给读取数据的库。问题是FileInput对象没有库所期望的“.read”属性 我需要一个带有.read的FileObject,就像将两个文件作为一个文件读取一样 对现有的解决办法有什么想法吗?是的,我知道我可以一起构建自己的小类或cat文件。只是想知道是否有我从未听说过的神奇的FileObject joiner。如果您的库使用.read()读取文件,那么将多
对现有的解决办法有什么想法吗?是的,我知道我可以一起构建自己的小类或cat文件。只是想知道是否有我从未听说过的神奇的FileObject joiner。如果您的库使用
.read()
读取文件,那么将多个文件对象合并为一个对象的抽象方法就没有多大意义了。读取所有内容并将其放入StringIO
非常简单,如果您只想对文件调用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)
您的文件对象已经可以通过生成器进行iterable,所以只需使用itertools将它们链接成一个大iterable即可
import itertools
all_the_things = itertools.chain(HeaderFile, BodyFile)
for line in all_the_things:
# your code here
我想唯一的问题是如果你有一个头文件有3行,然后大量的行。我认为StringIO在这种情况下可能会占用大量内存。我想我想要的是一个文件对象,它与将文件放在一起,然后打开组合文件是无法区分的。使用tmp文件很好,但我想知道python中是否有一些神奇的joiner。这不起作用。所有的东西都不存在。是的,使用。阅读不是很好,但我不能改变我正在使用的库,这就是游戏。