gpt4 book ai didi

python - 如果您使用 'with' 语句打开一个文件,您还需要关闭文件对象吗?

转载 作者:太空狗 更新时间:2023-10-29 18:29:43 25 4
gpt4 key购买 nike

对于打开文件,我习惯了明显较旧的语法:

f = open("sub_ranks.txt","r+")
for line in f:
...
f.close()

我已经被告知要改用这种语法好几次了..

with open("sub_ranks.txt", "r+") as f:
for line in f:
...

当使用“with”语句时,第二个例子中是否还需要一个文件对象“close”语句?

如果是这样,是否有任何具体理由使用“with”语句来读取文件?在这种情况下,它(稍微)更冗长。

最佳答案

您的直接问题的答案是“否”。 with block 确保当控制离开 block 时文件将被关闭,无论发生什么原因,包括异常(好吧,不包括有人将电源线拉到您的计算机和其他一些罕见事件)。

因此,最好使用 with block 。

现在可以说,打开一个文件只是为了阅读,然后无法关闭它并不是什么大问题。当垃圾收集出现时(无论何时),如果不再有对它的引用,该文件也将被关闭;最迟会在您的程序退出时发生。事实上,官方文档中的几个代码示例忽略了关闭仅为读取访问而打开的文件。在写入文件或使用示例中的“read plus”模式时,您肯定需要关闭文件。由于未能正确关闭文件,她对 SO 处理不完整/损坏的文件有很多疑问。

关于python - 如果您使用 'with' 语句打开一个文件,您还需要关闭文件对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21275836/

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