I don't open multiple file handles at once very often in Python, so it surprised me to find out this morning that you have to use the old-school line continuation hack to make it work (in 3.9 or earlier):
# Note the trailing backslash on the next line...
with open('a.txt', 'w') as file_a, \
open('b.txt', 'w') as file_b:
# Do something with file_a
# Do something with file_b
Happily, Python 3.10 fixes this by adding Parenthesized Context Managers, which allows us to use parentheses like you would expect to:
# Only in Python 3.10+
with (
open('a.txt', 'w') as file_a,
open('b.txt', 'w') as file_b
):
# Do something with file_a
# Do something with file_b
The project I'm working on is still on Python 3.9, but it's good to know this was improved, and is a motivator to upgrade the version I'm using.