|
发表于 2024-7-7 07:20:15
|
显示全部楼层
本帖最后由 chunjiu 于 2024-7-7 07:21 编辑
从 Python 3.7 开始,已经不需要显式调用 `close()` 函 来关闭文件对象了。 因为 Python 引入了自动资源管理,它会确保在文件对象超出作用域时自动关闭。
以下是一些使用自动资源管理的示例:
- # 使用 `with` 语句打开文件
- with open('example.txt', 'r') as f:
- content = f.read()
- print(content)
- # 使用 `try...finally` 语句块打开文件
- try:
- f = open('example.txt', 'r')
- content = f.read()
- print(content)
- finally:
- f.close()
复制代码
在以上示例中,即使没有显式调用 `close()` 函数,文件也会在语句块结束后自动关闭。
但是,在以下情况下,仍然建议显式调用 `close()` 函数:
* 在 **Python 3.7 之前的版本** 中。
* 需要在文件对象超出作用域之前**释放资源**,例如在使用 C 扩展模块时。
* 需要确保文件 **立即关闭**,例如在写入临时文件时。
总而言之,在 Python 3.7 及更高版本中,通常不需要显式调用 `close()` 函数来关闭文件对象。 但是,在某些情况下,仍然建议显式调用它。
|
|