gzip.open( "file.tar.gz" , "rb" ) vs. tarfile.open( "file.tar.gz" );提取全部()



假设我有一个文件 -'file.txt'焦油和 gzip 压缩,两者之间有什么区别:

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 标头?

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

最新更新