获取Python中tarred文件夹内容的文件名

获取Python中tarred文件夹内容的文件名,python,gzip,tar,Python,Gzip,Tar,我有一个名为gziptest.tar.gz的压缩文件夹,其中包含几个纯文本文件 我希望能够获得文件名和相应的文件内容,但是gzip库的使用示例没有包括这一点 以下代码: import gzip in_f = gzip.open('/home/cholloway/gziptest.tar.gz') print in_f.read() 生成输出: gzip test/file2000664 001750 001750 00000000016 12621163624 015761 0ustar00c

我有一个名为gziptest.tar.gz的压缩文件夹,其中包含几个纯文本文件

我希望能够获得文件名和相应的文件内容,但是gzip库的使用示例没有包括这一点

以下代码:

import gzip
in_f = gzip.open('/home/cholloway/gziptest.tar.gz')
print in_f.read()
生成输出:

gzip test/file2000664 001750 001750 00000000016 12621163624 015761 0ustar00chollowaycholloway000000 000000 I like apples
gzip test/file1000664 001750 001750 00000000025 12621164026 015755 0ustar00chollowaycholloway000000 000000 hello world
line two
gzip test/000775 001750 001750 00000000000 12621164026 015035 5ustar00chollowaycholloway000000 000000 

我可以使用一些正则表达式来检测新文件的开头并提取文件名,但我想知道gzip或其他标准python库中是否已经存在此功能。

对于该文件,不要使用
gzip
库。使用图书馆

您正在使用的文件是文件的tar存档的gzip压缩
test/*

如果您只想恢复tar归档文件,请使用
gzip
解压缩该文件。结果文件是(正如您发现的)所需文件的存档

从逻辑上讲,如果您想访问tar归档中的文件,我们必须首先使用
gzip
库来恢复tar归档,然后使用
tarfile
库来恢复文件

实际上,我们只使用
tarfile
库:
tarfile
库将代表您自动调用
gzip

我从
tarfile
手册页中复制了这个示例:

import tarfile
tar = tarfile.open("sample.tar.gz")
tar.extractall()
tar.close()