通常需要在文件对象上调用.close()方法或使用"with open"构造来确保它被关闭.
但是,我想知道写入这样的文件是否会使文件关闭:
open(path,'w').writelines(fileContents)
Run Code Online (Sandbox Code Playgroud)
不,open(path,'w').writelines(fileContents)不关闭文件.它处于打开状态,即使文件对象是匿名的,也没有分配给任何东西.如果句柄超出范围,CPython将清理句柄.
此外,我相信垃圾收集必须发生,这可能会或可能不会发生在一个块的结尾(它通常会发生,但没有授权或保证AFAIK).当其超出范围时,其他Python解释器可能会也可能不会关闭该文件,因此不要依赖该机制来处理常规Python代码.
最好只使用这个with成语并完成它.with在处理文件描述符时,很少有理由不使用.
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |