例如tarfile.extractall(path)将内容提取到指定的direcotry。同样,gzip有任何提取方法来获取指定目录的gzip成员(按标准只包含一个文件),还是有任何解决方法?
编辑:我不想将完整的文件读入内存
答案 0 :(得分:1)
不,因为gzip只是压缩格式而不是归档格式,所以gzip
模块和gzip.GzipFile
类中都没有提取方法。但是您没有理由在内存中加载完整的文件,您只需将其复制到块中即可。本手册给出了如何压缩文件的示例,可以很容易地对其进行解压缩:
import gzip
import shutil
with open('/home/joe/file.txt', 'wb') as f_out:
with gzip.open('/home/joe/file.txt.gz', 'rb') as f_in:
shutil.copyfileobj(f_in, f_out)
shutil.copyfileobj
旨在以块的形式处理副本。