当我的程序崩溃时,打开的文件会怎样?

时间:2019-08-13 20:39:38

标签: python operating-system

当我的程序由于打开的文件而崩溃时,它们会发生什么,它们会自动关闭吗?

我知道正确的方法是使用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语法有什么好处?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

使用with自动关闭文件。不使用with并且不显式关闭文件意味着只要您的应用程序正在运行,它将使文件保持打开状态。

如果程序崩溃,该文件将被释放并且锁将失效。不管用。但是,如果程序挂起,而您没有离开with语句,或者只是使用了打开状态,那么只要您的应用程序挂起,就可以保持文件打开。