在我的模块中,一个块的编码如下:
# open a text file to which results obtained in MAINBLOCK will be written
write2file = open('myResults.txt','w')
# MAINBLOCK
write2file.close()
当运行模块,我可能中断模块中IDLE
通过Ctrl+C
程序调试或例外的提高MAINBLOCK
,因此模块异常停止。但是,如果我myResults.txt
当时尝试在 Windows 资源管理器中删除,则消息显示:
The action can't be completed because the file is open in pythonw.exe
我想如果模块异常停止,文件仍然打开,对吗?如何以IDLE
或通过其他方式关闭所有这些打开的文件标识符?
使用with
语句确保即使发生异常也关闭所有文件:
with open("myResults.txt", "w") as write2file:
# do stuff
无需关闭文件 - 只要您的程序从with
块中退出,它就会自动关闭。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句