2015-10-30 134 views
1

我在修改gzip文件。 這裏是我的代碼:用python修改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)的

回答

2

你需要複製後指向臨時文件的開頭:

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

權。愚蠢的我。稍後會接受它,現在必須運行 – Slava