我目前正在使用 Python 编写一个小脚本,以便在我们的一台服务器上使用。服务器仅安装了Python 2.4.4。
我直到 2.5 发布才开始使用 Python,所以我习惯了这种形式:
with open('file.txt', 'r') as f:
# do stuff with f
然而,没有with
2.5 之前的声明,并且我无法找到有关手动清理文件对象的正确方法的示例。
使用旧版本的 python 时,安全处理文件对象的最佳实践是什么?
See docs.python.org:
使用完文件后,调用 f.close() 关闭它并释放打开文件占用的所有系统资源。调用 f.close() 后,尝试使用文件对象将自动失败。
因此使用close()
优雅地与try/finally
:
f = open('file.txt', 'r')
try:
# do stuff with f
finally:
f.close()
这确保了即使# do stuff with f
引发异常,f
仍会正常关闭。
注意open
应该出现outside of the try
. If open
本身引发异常,文件未打开且不需要关闭。另外,如果open
引发异常,其结果是not分配给f
调用是错误的f.close()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)