2015-09-01 6 views
0

Я загрузил файлы PDF, PNG в локальный экземпляр mongodb. По ошибке я удалил эти файлы, и я больше не могу их восстановить, используя обычные параметры восстановления. Однако они находятся в моей локальной базе данных mongodb. Как я могу сохранить их обратно в исходном формате на моем компьютере?Сохраните файл pdf, хранящийся в Mongodb GridFS, используя Python

Я знаю следующее:

import pymongo as pym 
import gridfs 

def connectToDb(): 
    client = pym.MongoClient('mongodb://localhost:27017/') 
    db = client.questionbank 
    collectn = db.questionbank 
    fs = gridfs.GridFS(db) 
    return db, collectn, fs 

db, collectn, fs = connectToDb() 

filelist = list(db.fs.files.find({}, {"_id": 1, "filename": 1})) 
fileid = filelist[0]['_id'] 
fobj = fs.get(fileid) 

## I don't know what to do after this. I think I cannot use read since I don't 
## want the string. I want to save the pdf file as a pdf file. 

Любая помощь будет принята с благодарностью. Заранее спасибо.

ответ

0

Хорошо, я понял это самостоятельно. Это может быть сделано следующим образом:

Для приведенного выше кода добавьте следующие строки:

f = open('tempfigfile.pdf', 'wb') 
f.write(fobj.read()) 
f.close() 

Это сохраняет файл как tempfigfile.pdf.

0

Этот код сохранит все файлы в локальной папке ur из mfmodb gridfs.

i=0 
cursor=fs.find() 
while(i < cursor.count()): 
    fi=cursor.next() 
    with open("C:\\localfolder\\"+fi.filename,"wb") as f: 
     f.write(fi.read()) 
     f.closed 
     i=i+1 
Смежные вопросы