python - 当我的程序崩溃时,打开的文件会发生什么?
问题描述
当我的程序因打开的文件而崩溃时,它们会发生什么情况,它们会自动关闭吗?
我知道正确的方法是使用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
语法有什么好处?
先感谢您!
解决方案
使用with
会自动关闭文件。不使用with
也不明确关闭您的文件意味着只要您的应用程序正在运行,它就会使文件保持打开状态。
如果您的程序崩溃,文件将被释放并且锁定将过期。不管与。但是,如果您的程序挂起,并且您没有离开该with
语句,或者只是使用 open,那么只要您的应用程序挂起,您就会保持文件打开。
推荐阅读
- mysql - 时间查询 - 查询一列大于另一列
- javascript - 用户脚本对于 Tampermonkey 的集成编辑器来说太大了
- bash - 根据文件内容创建文件夹
- c# - 在 Word VSTO 加载项中查找文档边框和表格之间的距离
- node.js - 从节点js中的日志文件读取
- java - 如何使用 Java 通过 Facebook API 获取我的页面的获利见解?
- docker - 如何将更改推送到 docker hub?
- scala - 退出状态:-100。诊断:容器在 *lost* 节点上释放
- javascript - 显示 JSON 数据的把手
- php - 什么是 wordpress 核心文件,为什么不应该编辑它们?