python:使用 gzip 文件遍历 tar 存档

发布于 2024-10-14 23:14:03 字数 492 浏览 4 评论 0原文

我有一些 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

百思不得你姐 2024-10-21 23:14:03

尝试使用 tarfile.open('20101231.tar', 'r:') 显式禁用压缩。

Try tarfile.open('20101231.tar', 'r:') to explicitly disable compression.

予囚 2024-10-21 23:14:03

试试这个:

this_tar = tarfile.open(filepath)
for file in this_tar.getnames():
    ...do stuff...

返回 TAR 中的每个文件。

try this:

this_tar = tarfile.open(filepath)
for file in this_tar.getnames():
    ...do stuff...

returns each file in the TAR.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文