问题描述
是否可以在 Python 中对多个对象使用 with
上下文管理器语法?
例如,类似于:
with open("file1.txt") as file1,open("file2.txt") as file2:
file1.write("this is file 1")
file2.write("this is file 2")
duckduckgo 和对该站点的内部搜索表明答案可能是否定的。鉴于可能的答案是“否”,下一个最佳选择是什么? (当然,如果答案是“是”,请告诉我如何。)
也许一组下一个上下文管理器,如下所示,会是一个很好的解决方案?
with open("file1.txt") as file1:
with open("file2.txt") as file2:
file1.write("this is file 1")
file2.write("this is file 2")
有什么理由不想这样做吗?顺序可能重要吗?
解决方法
这个
with open("file1.txt") as file1,open("file2.txt") as file2:
file1.write("this is file 1")
file2.write("this is file 2")
符合 docs
给出的with
语句定义
with_stmt ::= "with" with_item ("," with_item)* ":" suite
with_item ::= expression ["as" target]
其中 *
表示 0 次或多次重复