在Python中将JSON数据写入它们之后是否有必要关闭文件

时间:2016-04-08 15:41:26

标签: python json python-2.7 file

如果我使用:

with open(Name, 'w') as outfile:
    json.dump(json_object, outfile)

之后是否有必要使用file.close()方法?

在一般情况下,例如在python中将正常字符串写入文件,不使用file.close()方法的后果是什么?

2 个答案:

答案 0 :(得分:4)

使用'with'结构的优点正是您不必担心在此处关闭文件,因为当文件超出范围时它将自动关闭。

答案 1 :(得分:1)

在cpython中,即使您没有使用with语句,文件也会在其引用次数变为零时关闭。根据您使用文件对象的方式,您将面临循环引用不会发生这种情况的风险。但是有些条件会导致定期清理不会发生。在这种情况下,您可能会丢失尚未刷新的本地进程文件缓冲区中的任何数据。

风险最小的解决方案是尽可能使用capture.Stop();语句,否则with阻止清理文件。