gpt4 book ai didi

python - 使用 with 语句打开文件列表

转载 作者:行者123 更新时间:2023-11-28 17:18:00 25 4
gpt4 key购买 nike

我正在尝试使用 with 语句从 sys.argv 输入打开多个文件。

我知道我可以通过手动输入每一个来做到这一点:

with open(sys.argv[1], 'r') as test1, open(sys.argv[2], 'r') as test2, \
open(sys.argv[3], 'r') as test3, open(sys.argv[4], 'r') as test4:
do_something()

但是有没有办法不这样做,就像下面的伪代码:

with open(sys.argv[1:4], 'r') as test1, test2, test3:
do_something()

最佳答案

您可以在 Python 3.3+ 中执行此操作 with contextlib.ExitStack :

from contextlib import ExitStack

with ExitStack() as stack:
files = [stack.enter_context(open(arg, 'r')) for arg in sys.arv[1:4]]

有趣的是,文档中的示例正是您想要的。

这会在退出 with 语句时正确关闭所有打开的文件 - 即使在它们全部打开之前出现问题也是如此


对于较早版本的python,有a backport in the contextlib2 package ,你可以通过 pip

获取

关于python - 使用 with 语句打开文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43082533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com