我通常使用:
f = open(path,'w')
print >> f, string
f.close()
但是,我在其他代码中看到了:
print >> open(path,'w'), string
也很有效。
因此,如果用'打印'
打开文件,我们就不必关闭该文件答案 0 :(得分:9)
是的,您仍然需要关闭该文件。 print 没有区别。
关闭文件会将数据刷新到磁盘并释放文件句柄。
在CPython中,当 f 的引用计数降为零时,系统会为您执行此操作。在PyPy,IronPython和Jython中,您需要等待垃圾收集器运行(用于自动文件关闭)。而是采用依赖于内存管理器自动关闭的脆弱实践,首选的做法是控制文件的关闭。
由于显式关闭文件是最佳实践,因此Python为文件对象提供了一个上下文管理器,使其变得非常简单:
with open(path, 'w') as f:
print >> f, string
当您离开with-statement的正文时,这将关闭您的文件。