【发布时间】:2021-03-04 22:37:32
【问题描述】:
我在路径中有文件列表,我想在其中创建 iter 对象,因此我可以随时从任何文件中读取,同时所有文件都处于打开状态。路径中的文件数量是动态的。
filehandles = []
for filename in glob.glob(path):
filehandles += [open(filename, 'r')]
print(filehandles)
下面的代码在调用 next() 时抛出编译错误
() 缺少 1 个必需的位置参数:'filehandle'
for filehandle in filehandles:
fileiters += [iter(lambda filehandle: filehandle.readline(), '')]
print(next(fileiters[2])(filehandles[3]))
如果我没有为 lambda 保留任何参数,它将为所有文件句柄获取循环中的最后一个文件句柄。
有人可以帮助如何在所有打开的文件上创建迭代并有选择地调用下一个吗?
【问题讨论】:
标签: python iterator lazy-loading file-handling