是否有可能直接从存储在S3上的zip文件中读取特定文件?



我在名为big.zip的zip文件中有一个名为story.txt的文件,该文件存储在名为zips-bucket的S3桶中。

我希望我的Python代码只读取story.txt的内容,而不需要下载甚至扫描整个大zip文件。这可能吗?如何?

是的,这是可能的。您将需要导入smart-openzipfile模块。假设您的压缩文件在s3://zips-bucket/big.zip中。

import smart_open as so
import zipfile
with so.open('s3://zips-bucket/big.zip', 'rb') as file_data
with zipfile.ZipFile(file_data) as z:
with z.open('story.txt') as zip_file_data:
story_lines = zip_file_data.readlines()

应该可以了!

不,在你的特殊情况下这是不可能的。但是,S3提供了一个称为S3 Select的功能,如果满足某些要求,它可以选择性地读取文件的一部分。你可以查看文档

相关内容

  • 没有找到相关文章

最新更新