当模块异常停止时,关闭python模块中打开的所有文件
在我的模块中,一个块的编码如下:当模块异常停止时,关闭python模块中打开的所有文件,python,Python,在我的模块中,一个块的编码如下: # 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中引发异常,从而导致模块异常停止。但是,如果当时我试图在Windows资源管
# 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
中引发异常,从而导致模块异常停止。但是,如果当时我试图在Windows资源管理器中删除myResults.txt
,则消息会显示:
The action can't be completed because the file is open in pythonw.exe
我想如果模块异常停止,文件仍在打开,对吗?如何在空闲状态下或通过其他方式关闭所有打开的文件标识符?使用确保即使发生异常也关闭所有文件:
with open("myResults.txt", "w") as write2file:
# do stuff
无需关闭文件-当您的程序退出with
块时,它将自动关闭。使用确保关闭所有文件,即使出现异常:
with open("myResults.txt", "w") as write2file:
# do stuff
无需关闭文件-只要您的程序退出带有块的
,它就会自动关闭。作为最后的手段,我相信文件总是可以从Python shell窗口中的提示关闭:-
文件名。关闭()
每当一个程序由于异常而中止执行时,这对我来说是有效的。但是,如果有一个关闭所有打开的文件的“catch all”close方法,它将非常有用。作为最后的手段,我相信文件总是可以从Python shell窗口中的提示符处关闭:-
文件名。关闭()
每当一个程序由于异常而中止执行时,这对我来说是有效的。但是,如果有一个“全面关闭”方法关闭所有打开的文件,这将非常有用。谢谢。我知道带
的是一个更好的选择。但有时我会直接使用write2file=open('myResults.txt','w')
来避免太多缩进级别。因此,如果程序无法访问write2file.close()
,我仍然对如何解决打开文件的问题感兴趣。python中是否有一个模块可以关闭IDLE
中所有打开的文件,如果您想引入更多的控制,您将无法绕过额外的缩进。另一种方法是将使用打开文件的代码包装在try
块中,并在那里放置except
子句以关闭文件,然后重新引发异常。但那要复杂得多。谢谢。我知道带
的是一个更好的选择。但有时我会直接使用write2file=open('myResults.txt','w')
来避免太多缩进级别。因此,如果程序无法访问write2file.close()
,我仍然对如何解决打开文件的问题感兴趣。python中是否有一个模块可以关闭IDLE
中所有打开的文件,如果您想引入更多的控制,您将无法绕过额外的缩进。另一种方法是将使用打开文件的代码包装在try
块中,并在那里放置except
子句以关闭文件,然后重新引发异常。但这要复杂得多。