要使用put()
在gridFS中编写大文件,是否需要使用上下文管理器with
?
查看put()
here的文档,调用put()
等同于做,
try:
f = new_file(**kwargs)
f.write(data)
finally:
f.close()
这是否意味着文件的打开和关闭是自动完成的,因此在没有明确需要的情况下不需要?
答案 0 :(得分:0)
gridfs.GridFS.put
isn't a context manager。它没有定义上下文管理协议的__enter__
和__exit__
方法。
直接使用它而不作一些修改作为上下文管理器将产生AttributeError
。
按原样gridfs.GridFS.put
可以为您节省少量代码,更重要的是必须管理GridFile
的打开和关闭。