用python修改gzipped文件

时间:2015-10-30 16:57:36

标签: python io gzip

我正在尝试修改gzip压缩文件。 这是我的代码:

with tempfile.TemporaryFile() as tmp:
    with gzip.open(fname, 'rb') as f:
        shutil.copyfileobj(f, tmp)
    # do smth here later
    with gzip.open(fname, 'wb') as f:
        shutil.copyfileobj(tmp, f)

我删除了所有修改,只留下了读写。在输出时,我得到空的gzip文件。这有什么不对? (Python 2.7.6,Linux)

1 个答案:

答案 0 :(得分:2)

您需要在复制后指向临时文件的开头:

with tempfile.TemporaryFile() as tmp:
    with gzip.open(fname, 'rb') as f:
        shutil.copyfileobj(f, tmp)
        tmp.seek(0)