当我的程序由于打开的文件而崩溃时,它们会发生什么,它们会自动关闭吗?
我知道正确的方法是使用with
,但我很好奇如果不使用该怎么办。
f = open('sample.txt', 'r')
# Example code that crashes the problem
a = 5 / 0
相比
with open('sample.txt', 'r') as f:
a = 5 / 0
如果程序崩溃时打开的文件自动关闭,那么使用with
语法有什么好处?
提前谢谢!
答案 0 :(得分:2)
使用with
自动关闭文件。不使用with
并且不显式关闭文件意味着只要您的应用程序正在运行,它将使文件保持打开状态。
如果程序崩溃,该文件将被释放并且锁将失效。不管用。但是,如果程序挂起,而您没有离开with
语句,或者只是使用了打开状态,那么只要您的应用程序挂起,就可以保持文件打开。