【发布时间】:2022-02-10 02:02:54
【问题描述】:
我正在尝试在 S3 中读取 .gz 文件,共有 120 个文件,我想将所有文件合并为一个文件。
附:每个文件的大小在(419MB 到 900MB)之间。
output = []
for i in files:
if i.endswith('.gz'):
obj = s3.Object(bucket_name=bucket ,key=i)
with gzip.GzipFile(fileobj=obj.get()['Body']) as gzipfile:
content = gzipfile.read()
output.append(content)
我在这一行遇到 MemoryError content = gzipfile.read()
【问题讨论】:
-
如果文件大小范围符合规定,那么我们假设平均大小为 660MB。现在将它乘以 120,得到大约 77GB。您的机器是否能够在内存中维护这么多数据(加上其他开销)?
-
明白你的意思。谢谢! @OlvinRoght
-
您的帖子中没有任何 AWS 或 S3 特定内容。这看起来像是您从 S3 下载一些文件后正在运行的代码,此时它只是关于读取本地文件。
标签: python amazon-web-services amazon-s3 gzip