gpt4 book ai didi

python - 使用 boto 解压从 s3 拉取的 my_file.zip

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:30 24 4
gpt4 key购买 nike

我正在尝试使用 boto 打开 s3 中的 .zip 文件。我正在尝试直接处理数据,我想避免创建临时文件。

In [201]: import StringIO

In [202]: import boto

In [203]: conn = boto.connect_s3()

In [204]: my_bucket = conn.get_bucket('my_bucket')

In [205]: my_list = [ele for ele in my_bucket.list('my_file.zip')]

In [206]: f = StringIO.StringIO()

In [207]: my_list[0].get_file(f)

In [208]: f.seek(0)

如果文件没有压缩,我会使用:

my_content = my_list[0].get_contents_as_string()

但是因为它是压缩的,所以我得到的是垃圾。

An answer to this question使用 gzip 做我想做的事(我从中借鉴了一些尝试),但我找不到任何使用 zip 的东西。我尝试使用 zipfileZipFile,但 readextractextractall 方法似乎无法满足我的要求。

最佳答案

你应该看看 python 模块 gzip :

https://docs.python.org/2/library/gzip.html

您应该能够使用 gzip 进行 stringIO。.

from boto.s3.connection import S3Connection
import gzip
from StringIO import StringIO

S3Conn = S3Connection() # assuming your .boto has been setup
Bucket = S3Conn.get_bucket('my_bucket')
my_list = [gzip.GzipFile(fileobj=(StringIO(ele.get_contents_as_string()))) for ele in Bucket.list()]
#for readability I pulled this out
for item in my_list:
item.read()

为了可读性,列表理解可能应该被分解——但我按照你原来的帖子进行了比较。

祝你好运!

关于python - 使用 boto 解压从 s3 拉取的 my_file.zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29086699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com