在Python中关闭文件的不同方法

时间:2018-10-03 12:09:19

标签: python

通常,需要在文件对象上调用.close()方法,或使用“ with open”构造来确保它已关闭。

但是,我想知道是否这样写入文件会导致文件关闭:

open(path,'w').writelines(fileContents)

1 个答案:

答案 0 :(得分:5)

否,open(path,'w').writelines(fileContents)不会关闭文件。即使文件对象是匿名对象并且未分配任何内容,它也处于打开状态。如果CPython超出范围,它将清理该句柄。

此外,我认为必须进行垃圾回收,垃圾回收可能在一个块的末尾发生(可能会或可能不会发生)(通常会发生,但是没有授权或保证AFAIK)。当文件超出范围时,其他Python解释器可能会或可能不会关闭文件,因此对于一般的Python代码,请不要依赖该机制。

最好只使用with惯用语并加以使用。在处理文件描述符时,很少有不使用with的原因。