如果我使用:
with open(Name, 'w') as outfile:
json.dump(json_object, outfile)
之后是否有必要使用file.close()方法?
在一般情况下,例如在python中将正常字符串写入文件,不使用file.close()方法的后果是什么?
答案 0 :(得分:4)
使用'with'结构的优点正是您不必担心在此处关闭文件,因为当文件超出范围时它将自动关闭。
答案 1 :(得分:1)
在cpython中,即使您没有使用with语句,文件也会在其引用次数变为零时关闭。根据您使用文件对象的方式,您将面临循环引用不会发生这种情况的风险。但是有些条件会导致定期清理不会发生。在这种情况下,您可能会丢失尚未刷新的本地进程文件缓冲区中的任何数据。
风险最小的解决方案是尽可能使用capture.Stop();
语句,否则with
阻止清理文件。