python 将图片存入mongodb,读取图片,gridfs模块

本文介绍如何使用Python的pymongo和gridfs模块在MongoDB中存储和读取图片。通过遍历本地图片目录,利用gridfs模块将图片数据写入MongoDB,并展示如何从数据库中读取出图片数据并保存到本地。
导入图片
引入模块,其中gridfs模块不需要单独安装,引入了pymongo即可直接引入
from pymongo import MongoClient
from gridfs import *
import os
#链接mongodb
client=MongoClient('localhost',27017)
#取得对应的collection
db=client.image
#本地硬盘上的图片目录
dirs = 'e:\cs'
#列出目录下的所有图片
files = os.listdir(dirs)
#遍历图片目录集合
for file in files:
    #图片的全路径
    filesname = dirs + '\\' + file
    #分割,为了存储图片文件的格式和名称
    f = file.split('.')
    #类似于创建文件
    datatmp = open(filesname, 'rb')
    #创建写入流
    imgput = GridFS(db)
    #将数据写入,文件类型和名称通过前面的分割得到
    insertimg=imgput.put(datatmp,content_type=f[1],filename=f[0])
    datatmp.close()
print("js")

创建成功后,会在集合中生成fs.flies和fs.chunks

导出图片

from pymongo import MongoClient
from gridfs import *
client=MongoClient('localhost',27017)
db=client.image
#给予girdfs模块来写出,其中collection为上一步生成的,我不知道怎么该名称。实际上是由fs.flies和fs.chunks组成
gridFS = GridFS(db, collection="fs")
count=0
for grid_out in gridFS.find():
    count+=1
    print(count)
    data = grid_out.read() # 获取图片数据
    outf = open('cs.jpg','wb')#创建文件
    outf.write(data)  # 存储图片
    outf.close()

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值