0
다운로드하는 동안 매우 큰 .gz 파일 (commoncrawl 웹 압축 풀기)을 압축하려고하지만 zlib이 첫 번째 파일 (파일이 많은 것으로 보입니다. 연결된 gz 파일).여러 파일 .gz 청크를 파이썬으로 청크로 압축 해제하는 방법
import requests,json,zlib
fn="crawl-data/CC-MAIN-2017-04/segments/1484560279933.49/warc/CC-MAIN-20170116095119-00381-ip-10-171-10-70.ec2.internal.warc.gz"
fn="https://commoncrawl.s3.amazonaws.com/"+fn
r = requests.get(fn, stream=True)
d = zlib.decompressobj(zlib.MAX_WBITS | 16)
for chunk in r.iter_content(chunk_size=2048):
if chunk:
outstr = d.decompress(chunk)
print(len(chunk),chunk[:10].hex(),len(outstr),len(d.unused_data))
모든 청크는 "unused_data"로 이동하고 압축 해제되지 않고 첫 번째 것만 압축 해제됩니다.
는 배관이 zcat 때 잘 작동 :
curl https://commoncrawl.s3... | zcat | ....
"압축 해제 개체에서 eof를 가져올 때"보다 명확하게 나타낼 수 있습니까? outstr [-1] == b '?' – JulienFr
'd.eof'가 참입니다. –