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

gzip.open("file.tar.gz", "rb") vs. tarfile.open("file.tar.gz"); extractall()

假设我有一个文件 - 'file.txt' tar 和 gzipped,有什么区别:

    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()

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

假设正确。 Tar 只是将文件粘在一起而不压缩,而 gzip 只能压缩单个文件。 用gzip.open

解压后你在读tar