python - 关闭未保存到变量的文件不是 Python 中的坏习惯吗?

标签 python file garbage-collection

<分区>

在用 Python 编码时,我有时会使用这种语法:

open(filename,'w').write("sometext")

据我所知,这会导致 Python 的垃圾收集器关闭文件,但我听说 GC 的行为未定义,这可能会有问题。

这是真的吗?我应该一直使用这个吗:

with open(filename) as f: 
   f.write()

最佳答案

不要混淆垃圾收集和引用计数。

虽然没有正式保证,但至少在 CPython 中,使用 open(...).write(...) 会产生所需的行为,因为在该行完成后,ref-文件对象的计数降为 0,立即将其删除。

话虽如此,不要这样做。使用 with 语句更加优雅/可读/pythonic,显式优于隐式。

关于python - 关闭未保存到变量的文件不是 Python 中的坏习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596172/

相关文章:

java - Full GC后socket实例还在继续增长吗?

c - libgc : why this code leaks?

python - 使用 TensorFlow 初始化非线性回归模型中的偏差项

python - 带有随机双引号的 CSV 文件

PHP:MIME 类型的文件扩展名?

java - 为什么 Android 应用程序 RAM 使用量会永远稳定增加?甚至 Hello World 应用程序

python - tkinter - 为颜色选择器定义 "custom colors"

python - 比较三个数字?

Python - tempfile.TemporaryFile 无法读取;为什么?

java - 读取文本文件时出现问题