'与开放(...)'之间有什么区别?和关闭(开放(...))'

时间:2016-09-02 23:53:17

标签: python

根据我的理解,

with open(...) as x:
一旦with语句完成,

应该关闭文件。但是,现在我看到了

with closing(open(...)) as x:

在一个地方,环顾四周并想出,closing应该在完成with声明后关闭文件。

那么,关闭文件和closing文件之间的区别是什么?

1 个答案:

答案 0 :(得分:16)

假设contextlib.closing和标准内置openclosing在这里是多余的。它是一个包装器,允许您对具有with方法的对象使用close语句,但不支持将其用作上下文管理器。由于open返回的文件对象是上下文管理器,因此不需要closing