2015-12-14 36 views
5

我正在使用python的zipfile模塊。
擁有位於的路徑中的zip文件:
/home/user/a/b/c/test.zip
並具有創建另一個文件下/home/user/a/b/c/1.txt 我想將這個文件添加到現有的拉鍊,我所做的:
zip = zipfile.ZipFile('/home/user/a/b/c/test.zip','a') zip.write('/home/user/a/b/c/1.txt') zip.close()將文件添加到現有的zip文件

,並得到所有子文件夾解壓縮文件時出現在路徑中,如何在不使用路徑子文件夾的情況下輸入zip文件?

我也試過: zip.write(os.path.basename('/home/user/a/b/c/1.txt')) 並得到了一個錯誤,該文件不存在,雖然它。

注意:我沒有在路徑中使用硬編碼的值,它在這個例子中只是爲了簡化它。

回答

7

你有非常密切:

zip.write(path_to_file, os.path.basename(path_to_file)) 

應該爲你做的伎倆。

說明:zip.write函數接受第二個參數(arcname),它是要存儲在zip歸檔文件中的文件名,請參閱zipfile的更多詳細信息文檔。

os.path.basename()爲您取下路徑中的目錄,以便該文件將存儲在存檔中,並以其名稱命名。

請注意,如果您只有zip.write(os.path.basename(path_to_file))它將查找當前目錄中的文件(如錯誤所述)不存在。