2011-12-13 65 views
0

我正在運行一個python程序(v2.7),它可以通過電子郵件發送輸出。通常這會按預期工作,但偶爾壓縮文件非常大,以至於機器的磁盤空間不足。然而,當我使用finder手動壓縮文件時,它工作正常 - 在這種情況下,使用finder將6MB文件壓縮到1.6MB文件,但是python zip方法生成了20G文件。這裏就是壓縮和解是發生代碼:python zipfile.ZipFile()方法從6M原始生成20G zip文件

zip = zipfile.ZipFile(zipfilename,"w",zipfile.ZIP_DEFLATED) 
    for f in os.listdir("."): 
     if fnmatch.fnmatch(f,"*final*"): 
      zip.write(f) 
    zip.close() 

有沒有辦法解決這個問題,或者至少避免產生一個巨大的文件?

+0

不`zip.write(F)``如果是F`一個目錄,鏈接,`zipfilename`。你可以使用`os.path.isfile()`和`os.path.samefile()`。 – jfs 2011-12-13 21:54:58

回答

1

您是否可能在相同的目錄下創建該zip文件,然後程序嘗試將zip文件本身添加到zip文件中?

+0

壓縮文件創建在同一目錄中,但通常壓縮成功。例如,前一天9.6M的文件被壓縮到2.6M。 – user1086476 2011-12-13 21:01:24

0

其Linux ?,我認爲你包括隱藏的文件和文件夾?