Ben*_*ey4 0 python variables file
当我做
open('output1.txt', 'w').write("Hello guys")
Run Code Online (Sandbox Code Playgroud)
立即创建一个名为output1.txt的文件,其中包含字符串"Hello guys".但是,当我这样做
openvar = open('output2.txt', 'w')
openvar.write("Hello guys")
Run Code Online (Sandbox Code Playgroud)
然后只创建文件output2.txt.只有在我这样做的时候才会在output2.txt上看到"Hello guys"这个文字openvar.close()
.为什么这种行为只是因为额外的变量赋值而有所不同?
Thi*_*ter 10
Python在第一种情况下检测到文件对象不再被引用,因此垃圾收集器将收集它并调用它的析构函数来关闭文件.
在第二种情况下,文件对象仍然存在,因此它不会自动关闭.
完成区域后,应始终关闭文件.该with
声明使这很容易:
with open('output.txt', 'w') as f:
f.write('Hello')
Run Code Online (Sandbox Code Playgroud)
一旦剩下该块,文件就会再次关闭 - 即使块内的代码引发异常.
如果由于某种原因需要保持文件打开(例如,因为您要编写更多数据),可以.flush()
强制系统清空写缓冲区并实际将其写入文件.