我有一个名为gziptest.tar.gz的压缩文件夹,其中包含几个纯文本文件。
我希望能够获取文件名和文件的相应内容,但是gzip库的用法示例未涵盖此内容。
如下代码:
import gzip
in_f = gzip.open('/home/cholloway/gziptest.tar.gz')
print in_f.read()
Run Code Online (Sandbox Code Playgroud)
产生输出:
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
Run Code Online (Sandbox Code Playgroud)
我可以使用一些正则表达式来检测新文件的开头并提取文件名,但是我想知道gzip或其他标准python库中是否已存在此功能。
对于该文件,请勿使用该gzip
库。使用tarfile
库。
您正在使用的文件是文件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()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4784 次 |
最近记录: |