python:使用 gzip 文件遍历 tar 存档
我有一些 .tar 文件(已解压)。 它们每个都有一些 .gz 文件。
我需要遍历 .tar 文件并获取所有其他文件的解压缩内容。
所以我写道:
#!/usr/bin/python2.5 -u
import tarfile
import zlib
ar = tarfile.open('20101231.tar', 'r')
for item in ar:
if item.name[-3:] == ".gz":
print zlib.decompress(ar.extractfile(item).read())
f.close()
但这不起作用! 错误:“zlib.error:解压缩数据时出现错误 -3:标头检查不正确”,
但我可以执行 'tar xvf 20101231.tar && gzip -d 20101231/some_file.gz' 一切都完美! 但我无法从 python 做到这一点
I have some .tar files (ungzipped).
Each of them has some .gz files.
I need to walk through .tar file and get ungzipped content of all other files.
so I wrote:
#!/usr/bin/python2.5 -u
import tarfile
import zlib
ar = tarfile.open('20101231.tar', 'r')
for item in ar:
if item.name[-3:] == ".gz":
print zlib.decompress(ar.extractfile(item).read())
f.close()
but it doesn't work!
Error: "zlib.error: Error -3 while decompressing data: incorrect header check"
but I can do 'tar xvf 20101231.tar && gzip -d 20101231/some_file.gz' and all works perfectly!
But I can't do it from python
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试使用
tarfile.open('20101231.tar', 'r:')
显式禁用压缩。Try
tarfile.open('20101231.tar', 'r:')
to explicitly disable compression.试试这个:
返回 TAR 中的每个文件。
try this:
returns each file in the TAR.