使用Pymongo gridfs从数据库中获取文本文件,并像在读取模式下打开的文本文件一样遍历它

时间:2018-08-10 08:02:20

标签: pymongo gridfs

我的目标是编写python脚本,该脚本使用gridfs读取文本文件。 并逐行进行迭代。 当我使用gridfs.get()时,注意到我在每次迭代中都得到了大块字节。请您指导我如何用“ get”一行一行地迭代。

我可以通过使用GridFsBucket并将数据不必要地存储在临时文件中,然后在读取模式下再次打开以逐行迭代的方式进行管理。寻找更好的方法来解决这个问题。

    file_store = GridFSBucket(db)
    file = open('test.txt', 'wb')
    file_store.download_to_stream(raw_file[0].get('ObjectId'),file)
    if not file:
        return None
    file.close()
    file=open('test.txt','rb')
    for line in file:
        .....

1 个答案:

答案 0 :(得分:0)

能够使用“ GridFSBucket”和“ open_download_stream”来实现这一目标。

下面是示例代码:-

file_store = GridFSBucket(mongo.db,bucket_name =)

file_handler = file_store.open_download_stream(object_id)

eachline = file_handler.readline() 而每行:    ....过程    eachline = file_handler.readline()