首页 > 解决方案 > 当我的程序崩溃时,打开的文件会发生什么?

问题描述

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

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

先感谢您!

标签: pythonoperating-system

解决方案


使用with会自动关闭文件。不使用with也不明确关闭您的文件意味着只要您的应用程序正在运行,它就会使文件保持打开状态。

如果您的程序崩溃,文件将被释放并且锁定将过期。不管与。但是,如果您的程序挂起,并且您没有离开该with语句,或者只是使用 open,那么只要您的应用程序挂起,您就会保持文件打开。


推荐阅读