1. 程式人生 > >python 將圖片存入mongodb,讀取圖片,gridfs模組

python 將圖片存入mongodb,讀取圖片,gridfs模組

匯入圖片
引入模組,其中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()