gzip有像tarfile.extract这样的提取方法吗?

时间:2018-03-02 06:39:11

标签: python python-3.x gzip

例如tarfile.extractall(path)将内容提取到指定的direcotry。同样,gzip有任何提取方法来获取指定目录的gzip成员(按标准只包含一个文件),还是有任何解决方法?

编辑:我不想将完整的文件读入内存

1 个答案:

答案 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旨在以块的形式处理副本。