我正在尝试修改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)
答案 0 :(得分:2)
您需要在复制后指向临时文件的开头:
with tempfile.TemporaryFile() as tmp:
with gzip.open(fname, 'rb') as f:
shutil.copyfileobj(f, tmp)
tmp.seek(0)