【问题标题】:What happens to opened files when my program crash?当我的程序崩溃时,打开的文件会发生什么?
【发布时间】:2019-08-13 20:39:38
【问题描述】:

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

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

提前谢谢你!

【问题讨论】:

  • 在这两种情况下,“崩溃”的只是你的程序,而不是 Python 本身。
  • 您是否计划让您的程序崩溃?
  • @ScottHunter 我想打开很多很多文件,而使用其他语法它会嵌套太深。所以我想切换到不使用它们。我想知道打开文件的行为,因为在开发和测试过程中,程序会崩溃很多。
  • 那么打开的文件会发生什么? @quamrana
  • 如果打开阅读,程序崩溃时不会发生太多事情。

标签: python operating-system


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多