使用pymongo

时间:2015-05-15 13:22:32

标签: pymongo gridfs

我有一个存储在MongoDB gridFS中的大型视频文件。 我想读它并把它写在我的磁盘上。 我可以在数据库中找到该文件:

 file = grid_fs.find_one({"filename":'file_in_database.cin'})

我找回了一个网格输出对象 gridfs.grid_file.GridOut位于0xa7b7be0

我尝试用我的磁盘写文件:

 with open('file_from_database.cin', 'w') as f:
      f.write(file.read())

我写了文件,但是从数据库下载的文件大小与文件的原始大小略有不同:

05/15/2015  09:09 AM        65,585,808 file_from_database.cin
08/01/2007  01:08 PM        65,585,800 Original_file.cin

我检查了数据库中的文件,md5字段与原始字段相同,因此问题必须是在下载或写入期间。

我使用win7 64和anaconda64 dirstribution for python 2.7

任何帮助都将不胜感激。

更新

我用jpeg图像尝试了相同的代码,我遇到了同样的问题,图像存储在数据库中,但是当我得到它并将其写入磁盘时,大小略有不同,我无法读取它。 / p>

03/20/2015  02:36 PM         5,422,339 original_image.JPG
05/15/2015  02:44 PM         5,438,750 image_from_database.JPG

我是否在读取网格输出并写入磁盘时遇到了一些简单的错误?

如果我用以下方式打开图片,那么感兴趣

PIL.Image.open(file)

我可以把图像弄好。有什么想法吗?

0 个答案:

没有答案