首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用GridFSBucket逐块处理正在下载的文件

如何使用GridFSBucket逐块处理正在下载的文件
EN

Stack Overflow用户
提问于 2018-08-10 16:02:20
回答 1查看 165关注 0票数 0

我的目标是编写python脚本,它使用gridfs读取文本文件。然后逐行迭代通过它。当我使用gridfs.get()时,注意到我在每个iteration.Can中都得到了字节块,请您指导我如何使用"get“逐行迭代。

我能够做到这一点,方法是使用GridFsBucket并将数据存储在临时文件中,然后以读取模式再次打开以逐行迭代。寻找一个更好的方法来处理这件事。

代码语言:javascript
复制
    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:
        .....
EN

回答 1

Stack Overflow用户

发布于 2018-08-16 13:11:37

可以使用GridFSBucketopen_download_stream来实现这一点。

以下是示例代码:

代码语言:javascript
复制
file_store = GridFSBucket(mongo.db, bucket_name=<fs CollectionName>)

file_handler = file_store.open_download_stream(object_id)

eachline=file_handler.readline()
while eachline:
   .........processss
   eachline = file_handler.readline() 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51781803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档