gpt4 book ai didi

python - 使用 with ... as 语句与简单地声明变量

转载 作者:行者123 更新时间:2023-12-05 09:26:17 26 4
gpt4 key购买 nike

我刚开始通过 Jupyter 学习 python。

代码1和代码2有什么区别?

  1. 使用 :

    with open('myfile.txt') as new_file:
    contents = new_file.read()
  2. 不使用 with:

    new_file = open('myfile.txt')
    contents = new_file.read()

我可以一直使用代码 2 吗?它比代码 1 更直接。

最佳答案

在第一种情况下,您使用的是所谓的上下文管理器 - 即当 with block 完成时,文件也将随后关闭(因为在 之后不再需要它) with block 已完成执行)。

这意味着这两段代码的作用不同 - 相反,在后一种情况下,您还必须记住在读取文件后关闭文件:

new_file = open('myfile.txt')
contents = new_file.read()
new_file.close()

此外,包装代码的代码可能会发生异常,因此在这种情况下,即使发生异常也必须确保将其关闭:

new_file = open('myfile.txt')

try:
contents = new_file.read()
finally:
new_file.close()

而不是手动执行此操作,您可以让 Python 自动处理它,因为文件句柄本身可以是上下文管理器:

with open('myfile.txt') as new_file:
contents = new_file.read()

不再手动考虑何时关闭文件以及如何处理任何潜在的替代流程。

关于python - 使用 with ... as 语句与简单地声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73997362/

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