gzip.open(“ file.tar.gz”,“ rb”)与tarfile.open(“ file.tar.gz”);提取所有()

时间:2018-10-07 06:20:33

标签: python gzip tarfile

假设我有一个文件-'file.txt'脱皮并压缩,那么之间有什么区别?

    with tarfile.open('file.tar.gz') as tar:
        tar.extractall()
        with open('file.txt', 'rb') as f:
            x =  f.read()

    with gzip.open('file.tar.gz', 'rb') as f:
        x =  f.read()

在第一个中,我得到的输出没有奇怪的十六进制字符,但确实出现在第二个中。 f.read内的gzip是否读取实际的.tar文件而不是读取普通文件,而这些字符是tar文件头?

1 个答案:

答案 0 :(得分:1)

正确的假设。 Tar只是将文件粘合在一起而不进行压缩,而gzip只能压缩单个文件。 您正在使用gzip.open减压后阅读tar。