我想同时更改几个文件,如果我可以写入所有这些文件。我想知道如果我能以某种方式将多个打开的调用与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.strerro
如果这是不可能的,这个问题有没有比较好的解决方案?是什么样的?
只需替换and,,你就完成了:
try:
with open('a', 'w') as a, open('b', 'w') as b:
do_something()
except IOError as e:
print 'Operation failed: %s' % e.strerror
从Python 2.7(或3.1分别),你可以写
with open('a', 'w') as a, open('b', 'w') as b:
do_something()
在Python的早期版本中,有时可以使用 contextlib.nested()嵌套上下文管理器。这不会按预期方式打开多个文件 - 请参阅链接的文档的详细信息。