Amazon s3 如何从S3下载并仅打开bzip2的第一个块?
我在S3上有一个很大的bzip2压缩文件,我只对它的第一行感兴趣。如何在不下载和解压缩整个文件的情况下读取第一行?Amazon s3 如何从S3下载并仅打开bzip2的第一个块?,amazon-s3,bzip2,Amazon S3,Bzip2,我在S3上有一个很大的bzip2压缩文件,我只对它的第一行感兴趣。如何在不下载和解压缩整个文件的情况下读取第一行?import boto3 输入io 进口bz2 s3=boto3.resource('s3') s3_object=s3.object(“bucket name”、“path/file.bz2”) f_bz2=s3_object.get(范围=f“bytes=0-100000”)[“Body”].read() io_bz2=io.BytesIO(f_bz2) 行=[] 将bz2.bz
import boto3
输入io
进口bz2
s3=boto3.resource('s3')
s3_object=s3.object(“bucket name”、“path/file.bz2”)
f_bz2=s3_object.get(范围=f“bytes=0-100000”)[“Body”].read()
io_bz2=io.BytesIO(f_bz2)
行=[]
将bz2.bz2文件(io_bz2,“r”)作为f:
尽管如此:
line.append(f.readline())
bzip2的压缩块大小在100kb到900kb之间。以上代码假定为100kb
最后会引发一个异常:
EOFError: Compressed file ended before the end-of-stream marker was reached