我有两个文件:标题和正文。我正在使用图书馆来阅读整个内容。我可以使用“fileinput.input”创建一个 FileInput 对象并将其交给读取数据的库。问题是 FileInput 对象没有库似乎期望的“.read”属性。
我需要一个带有 .read 的 FileObject,就像将两个文件作为一个文件读取一样。
任何想法现有的解决方法?是的,我知道我可以一起构建自己的小类或 cat 文件。只是想知道是否有一些我从未听说过的神奇 FileObject joiner。
我有两个文件:标题和正文。我正在使用图书馆来阅读整个内容。我可以使用“fileinput.input”创建一个 FileInput 对象并将其交给读取数据的库。问题是 FileInput 对象没有库似乎期望的“.read”属性。
我需要一个带有 .read 的 FileObject,就像将两个文件作为一个文件读取一样。
任何想法现有的解决方法?是的,我知道我可以一起构建自己的小类或 cat 文件。只是想知道是否有一些我从未听说过的神奇 FileObject joiner。
如果您的库从带有 的文件中读取.read()
,那么将多个文件对象合并为一个的抽象意义不大。阅读所有内容并将其放入StringIO
.
if you just want to call readline() on the files, try this:
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)
您的文件对象已经可以通过生成器进行迭代,因此只需使用 itertools 将它们链接成一个大的可迭代对象。
import itertools
all_the_things = itertools.chain(HeaderFile, BodyFile)
for line in all_the_things:
# your code here