我試圖使用python zipfile模塊壓縮文件夾中的所有文件(該文件夾沒有任何子目錄),但似乎無法獲得所需的輸出。我有folderA
坐在F:\Projects\ProjectA\Folders\folderA and my script under F:\Projects\ProjectA\CodeA\zipcode.py
。我想壓縮folderA中的所有文件,以便生成的壓縮文件在F:\Projects\ProjectA\Folders
下命名爲folderA.zip
,並使用原始文件名。Python - 使用zipfile模塊壓縮目錄中的所有文件
唯一的問題是,解壓縮結果會生成Folders \ folderA而不是隻有folderA。它與folderA的相對路徑有關,但我似乎無法獲得所需的結果。
#zipcode.py
import os
import zipfile
filepath = "F:/Projects/ProjectA/Folders/folderA"
archive = zipfile.ZipFile(os.path.abspath(filepath) + '.zip', 'w')
for root, dirs, files in os.walk(filepath):
for afile in files:
archive.write(os.path.relpath(os.path.join(root, afile)))
archive.close()
其實我是想輸出的zip文件包含一個名爲folderA的所有文件駐留文件夾在裏面。以上將直接將文件寫入壓縮文件。 –
@Riz_K:對我的第一個答案爲true,但是我的編輯添加了'name_in_archive = os.path.join(os.path.basename(filepath),afile)'。這爲所有文件添加了'folderA'前綴。重要的一點是你知道如何控制檔案中文件的名稱。 –
真棒...感謝細節! –