我喜欢Python2.7中多上下文with
语句的便利性:
with open('a.txt') as a, open('b.txt') as b:
do_many_amazing_things(a, b)
但是,我需要保持与2.6的兼容性。
with
是通过__future__
被带到2.5版本的,但我在文档中找不到任何关于多上下文版本被反向移植到2.6的内容。
我是不是漏掉了什么?
编辑:我知道嵌套with
语句是可能的。我在问是否可以使用多个with语句。
发布于 2011-10-13 03:08:04
如果不可能实现向后兼容,我将通过使多上下文with
语句成为一组单上下文嵌套with
语句来处理它。
with open('a.txt') as a:
with open('b.txt') as b:
do_many_amazing_things(a, b)
编辑以处理您的编辑:
如果您坚持不嵌套额外的with
语句,则始终可以使用contextlib
import contextlib
with contextlib.nested(open("a.txt"), open("b.txt")) as (a, b):
do_many_amazing_things(a,b)
至于使用未来导入的with
中的多个with
语句,据我所知,这是不可能的
https://stackoverflow.com/questions/7745164
复制相似问题