开发者

Multiple context `with` statement in Python 2.6

开发者 https://www.devze.com 2023-04-12 09:30 出处:网络
I like the convenience of the multiple context with statement in Python 2.7: with open(\'a.txt\') as a, open(\'b.txt\') as b:

I like the convenience of the multiple context with statement in Python 2.7:

with open('a.txt') as a, open('b.txt') as b:
   do_many_amazing_things(a, b)

However, I need to maintain compatibility with 2.6.

with was brought to 2.5 via __future__, but 开发者_Python百科I am unable to find anything about the multiple context version being back-ported to 2.6 in the documentation.

Is there something I missed?

EDIT: I am aware that is possible to nest with statements. I am asking if it's possible to use multiple with statements.


If no backward-compatible equivalent of this is possible, I would handle it by making the multiple-context with statement a set of single-context, nested with statements.

with open('a.txt') as a: 
    with open('b.txt') as b:
        do_many_amazing_things(a, b)

EDIT to address your edit:

If you insist on not nesting extra with statements, you can always use contextlib

import contextlib
with contextlib.nested(open("a.txt"), open("b.txt")) as (a, b):
    do_many_amazing_things(a,b)

As for using multiple with statements from the future-imported with, this isn't possible as far as I know

0

精彩评论

暂无评论...
验证码 换一张
取 消