The syntax error is coming from finding "as" in a place it's unexpected.  (Additionally, if you were to drop the `as fn`, you'd get an AttributeError as tuple.__enter__ isn't defined).

There's a contextlib helper that you might consider:

Which you might use like:

    from contextlib import ExitStack

    with ExitStack() as stack:
        f1 = stack.enter_context(open(fname1))
        f2 = stack.enter_context(open(fname2))
        f3 = stack.enter_context(open(fname3))
        f4 = stack.enter_context(open(fname4))

On Wed, Nov 13, 2019 at 1:30 PM <> wrote:
Hello everybody,

today I tried to open four files simultaneously by writing

with (
    open(fname1) as f1,
    open(fname2) as f2,
    open(fname3) as f3,
    open(fname4) as f4

However, this results in a SyntaxError which is caused by the extra brackets. Is there a reason that brackets are not allowed in this place?
Python-ideas mailing list --
To unsubscribe send an email to
Message archived at
Code of Conduct: