2017-09-29 85 views
0

我想讓Python解壓縮我的文件夾中的所有文件,但我希望它將它們保存在與zip文件夾同名的新解壓縮文件夾中他們來自哪裏。如何在Python中解壓縮文件,但保留Zip文件夾

例如,如果我的文件夾「大都會」有兩個拉鍊文件夾:

folder1.zip:文件1

folder2.zip:文件2

我想這些文件落得如下:

氣象\文件夾1 \文件1

氣象\文件夾2 \文件2

目前,該方案使這兩個文件在會見文件夾:

會見\文件1和文件2

#Unzip all zip files 
zip_files = glob.glob(r"C:\Users\simon.rhee\Desktop\Met\*.zip") 

i = 1 
for u in zip_files: 
    dir_name = os.path.splitext(u[0]) 
    zip_handler = zipfile.ZipFile(u,"r") 
    zip_handler.extractall() 
    print("Unzipping File #",i,"Complete") 
+1

@ PM2Ring至少用python 3.4,'extractall'創建目錄如果不存在。 –

+0

,它甚至可以用超過1個目錄深度:'zip_handler.extractall(「foo/bar/spam」)'(這裏不相關,但仍然:)) –

回答

2

首先,解決您的dir_name表達,因爲它目前不正確,因爲它傳遞的第一個字母工作usplitext而不是採取的u

dir_name = os.path.splitext(u)[0] 

基數,然後,通過額外的path參數extractall

zipfile.ZipFile.extractall(path=dir_name) 

如果dir_name不存在,則創建(與Python 3.4測試)。

相關問題