暂时解压缩文件的最佳(最“pythonic”)方式

时间:2011-12-12 19:36:27

标签: gzip python

我需要暂时创建一些文件的解压缩版本。我见过人们在bash中做zcat somefile.gz > /tmp/somefile,所以我在python中创建了这个简单的函数:

from subprocess import check_call
def unzipto(zipfile, tmpfile):
    with open(tmpfile, 'wb') as tf:
        check_call(['zcat', zipfile], stdout=tf)

但是使用zcat和check_call对我来说似乎很骇人听闻,我想知道是否有更多的“pythonic”方法可以做到这一点。

感谢您的帮助

2 个答案:

答案 0 :(得分:16)

gzip.open(zipfile).read()将以单个字符串为您提供文件内容。

with open(tmpfile, "wb") as tmp:
    shutil.copyfileobj(gzip.open(zipfile), tmp)

将内容放在临时文件中。

答案 1 :(得分:6)

您是否考虑过使用zlibgziptarfile