我有一个存储在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)
我可以把图像弄好。有什么想法吗?