当我这么做的时候
open('output1.txt', 'w').write("Hello guys")
一个名为output1.txt的文件被立即创建并包含字符串“Hello guys”。 但当我这么做的时候
openvar = open('output2.txt', 'w')
openvar.write("Hello guys")
然后只创建output2.txt文件。只有当我执行openvar.close()
操作时,才会在output2.txt上看到文本“Hello guys”。
为什么这种行为的不同仅仅是因为一个额外的变量赋值?你知道吗
Python检测到文件对象在第一种情况下不再被引用,所以垃圾收集器将收集它并调用它的析构函数来关闭文件。你知道吗
在第二种情况下,file对象仍然存在,因此它不会自动关闭。你知道吗
完成后,应始终关闭文件。
with
语句使这变得非常简单:块一离开,文件就会再次关闭—即使块中的代码引发异常。你知道吗
如果出于某种原因(例如,因为要写入更多数据)需要保持文件打开,可以
.flush()
强制系统清空写入缓冲区并实际将其写入文件。你知道吗在第一种情况下,垃圾收集器将为您关闭文件。没有对该文件的引用。在第二种情况下,您创建了对文件的引用。您必须手动关闭它,否则当引用被销毁时,它将被垃圾收集器关闭。你知道吗
相关问题 更多 >
编程相关推荐