zoukankan      html  css  js  c++  java
  • 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()

    ---------------------
    作者:a873054267
    来源:CSDN
    原文:https://blog.csdn.net/A873054267/article/details/83788430
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    乌龟棋 (codevs 1068)题解
    全排列 (codevs 1294)题解
    最小伤害 题解
    编码问题 题解
    基础DAY3-运算符 逻辑运算符 if elif
    图解算法——合并k个排序列表(Merge k Sorted Lists)
    算法图解——组合求和( Combination Sum)
    make命令使用 & makefile编写详解
    并发工具CountDownLatch源码分析
    线程局部变量ThreadLocal实现原理
  • 原文地址:https://www.cnblogs.com/ExMan/p/10948860.html
Copyright © 2011-2022 走看看