当前位置: 首页 > 面试题库 >

如何在Python中使用“ with open”打开多个文件?

葛修永
2023-03-14
问题内容

我想一次更改几个文件,前提是我可以写入所有文件。我想知道是否可以将多个打开的调用与该with语句组合:

try:
  with open('a', 'w') as a and open('b', 'w') as b:
    do_something()
except IOError as e:
  print 'Operation failed: %s' % e.strerror

如果不可能,那么解决该问题的优雅解决方案会是什么样?


问题答案:

从Python 2.7(或分别为3.1)开始,你可以编写

with open('a', 'w') as a, open('b', 'w') as b:
    do_something()

在早期版本的Python中,有时可以使用contextlib.nested()嵌套上下文管理器。但是,这对于打开多个文件无法正常工作-有关详细信息,请参见链接的文档。

在极少数情况下,你想同时打开全部数量不定的文件,可以使用contextlib.ExitStack从Python 3.3版开始的:

with ExitStack() as stack:
    files = [stack.enter_context(open(fname)) for fname in filenames]
    # Do something with "files"

大多数情况下,你拥有一组可变的文件,但是你可能想要一个接一个地打开它们。



 类似资料:
  • 问题内容: 如何打开一个Excel文件以便在Python中读取? 例如,我已经使用read命令打开了文本文件。如何为Excel文件执行此操作? 问题答案: 编辑: 在较新版本的pandas中,您可以将工作表名称作为参数传递。 检查文档以获取有关如何通过的示例sheet_name:https : //pandas.pydata.org/pandas-docs/stable/generation/pa

  • 问题内容: 我想知道如何根据文件扩展名在记事本和图片查看器等程序中打开文件。我在Windows上使用Python 3.3。 我已经做过一些研究,人们提到了一个名为的模块,但是当我尝试导入该模块时,我收到一个ImportError。 这是我到目前为止的内容: 我还将拥有需要在记事本中打开的HTML和JSON文件。 问题答案: 使用此命令可使用默认程序打开任何文件: 如果您确实想使用某个程序,例如记事

  • 如何在Visual Studio Code(VSC)中打开多个文件?由于某种原因,我的VS Code副本一次只能打开一个文件。例如,如果工作区文件夹中有两个文件,让我们说一个超文本标记语言和CSS文件,两者都不能同时打开。如果一个文件打开,单击VSC的文件浏览器中的任何其他项将替换当前文件。VSC不会在新的编辑选项卡中打开另一个文件。不关心运行VSC的多个实例,工作区或文件夹。我只想在同一个文件夹

  • 问题内容: 我想在python 3.5的默认应用程序中打开文件,特别是在记事本中打开“ screen.txt”。 我已经搜索了互联网,并找到了大多数答案。我用文件的路径尝试了此操作,但返回了一个错误,提示“行继续符后出现意外字符”。我尝试了没有文件路径的尝试,只是文件名,但仍然无法正常工作。 这个错误是什么意思?我从未见过。 请提供打开有效的.txt文件的解决方案。 编辑:我在受限(学校)计算机上

  • 问题内容: 这是我上传多个文件的代码: HTML代码: 密码: 但是它会上传单个文件,而不是多个文件。 问题答案: 在模板中,你需要在上传输入中添加属性: 然后在查看功能中,上传的文件可以通过列表获取。循环此列表并在每个项目上调用save()方法将它们保存在给定路径中: 此外,你可能需要使用secure_filename()来清洁文件名: 你也可以使用此方法生成随机文件名。 完整演示 视图: im

  • 问题内容: 如果我想在Python中打印多行文本而不用为每一行都键入内容,是否有办法做到这一点?我将其用于ASCII艺术。 (Python 3.5.1) 问题答案: 您可以使用三引号(单引号或双引号):