我想一次更改几个文件, 如果 我可以写入所有文件。我想知道我是否可以以某种方式将多个打开调用与 with
语句结合起来:
try:
with open('a', 'w') as a and open('b', 'w') as b:
do_something()
except IOError as e:
print 'Operation failed: %s' % e.strerror
如果这不可能,那么这个问题的优雅解决方案会是什么样子?
原文由 Frantischeck003 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 Python 2.7(或分别为 3.1)开始,您可以编写
( _历史注释_:在早期版本的 Python 中,您有时可以使用
contextlib.nested()
来嵌套上下文管理器。不过,这对于打开多个文件不会按预期工作——有关详细信息,请参阅链接文档。)在极少数情况下,您想同时打开可变数量的文件,您可以使用
contextlib.ExitStack
,从 Python 版本 3.3 开始:请注意,更常见的是您希望按顺序处理文件,而不是同时打开所有文件,特别是如果您有可变数量的文件: