【发布时间】:2021-12-30 02:52:54
【问题描述】:
澄清
确实有两个问题。更新以使这一点更清晰。
我有:
t = {
'fd': open("filename", 'r')
}
我了解del t['fd'] 删除了密钥并关闭了文件。对吗?
del t 是否对包含的对象(在这种情况下为 fd)调用 del?
【问题讨论】:
-
它最终会,但可能要等到脚本结束——所以指望它不是一个好主意。
-
一般情况下,最好明确关闭文件(使用
close或with语句)。删除变量(直接或作为字典的一部分)并不是真正的正确方法 -
根据文档:“警告在不使用 with 关键字或调用 f.close() 的情况下调用 f.write() 可能会导致 f.write() 的参数未完全写入磁盘,即使程序成功退出。” docs.python.org/3/tutorial/…
标签: python io garbage-collection file-descriptor