["python","with-statement"]
Multiple variables in a 'with' statement?

Is it possible to declare more than one variable using a with statement in Python? Something like: from __future__ import with_statement with open("out.txt","wt"), open("in.txt") as file_out, file_in: for line in file_in: file_out.write(line) ... or is cleaning up two resources at the same time the problem?
It is possible in Python 3 since v3.1 and Python 2.7. The new with syntax supports multiple context managers: with A() as a, B() as b, C() as c: doSomething(a,b,c) Unlike the contextlib.nested, this guarantees that a and b will have their __exit__()'s called even if C() or it's __enter__() method raises an exception. You can also use earlier variables in later definitions (h/t Ahmad below): with A() as a, B(a) as b, C(a, b) as c: doSomething(a, c) As of Python 3.9 (however only officially reported in 3.10), you can use parentheses: with ( A() as a, B(a) as b, C(a, b) as c, ): doSomething(a, c)