我知道我可以打开多个文件,比如,
with open('a', 'rb') as a, open('b', 'rb') as b:
但是我有一种情况,我有一个要打开的文件列表,并且想知道在预先不知道文件数量的情况下执行相同操作的首选方法是什么。像这样,
with [ open(f, 'rb') for f in files ] as fs:
(但由于list没有实现__exit__
,这会导致AttributeError
失败)
我不介意使用像这样的东西,
try:
fs = [ open(f, 'rb') for f in files ]
....
finally:
for f in fs:
f.close()
但我不确定如果一些文件在试图打开它们时抛出会发生什么。在finally
块中,fs
会被正确地定义吗?
https://stackoverflow.com/questions/7945182
复制相似问题