假设我有一个文件-'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文件头?
答案 0 :(得分:1)
正确的假设。 Tar只是将文件粘合在一起而不进行压缩,而gzip只能压缩单个文件。 您正在使用gzip.open减压后阅读tar。