GridFS:使用' put'来编写文件时,显式'用'块必要吗?

时间:2017-12-29 18:07:25

标签: python mongodb pymongo gridfs

要使用put()在gridFS中编写大文件,是否需要使用上下文管理器with? 查看put() here的文档,调用put()等同于做,

try:
    f = new_file(**kwargs)
    f.write(data)
finally:
    f.close()

这是否意味着文件的打开和关闭是自动完成的,因此在没有明确需要的情况下不需要?

1 个答案:

答案 0 :(得分:0)

gridfs.GridFS.put isn't a context manager。它没有定义上下文管理协议的__enter____exit__方法。

直接使用它而不作一些修改作为上下文管理器将产生AttributeError

按原样gridfs.GridFS.put可以为您节省少量代码,更重要的是必须管理GridFile的打开和关闭。