2015-06-09 195 views
1

我想用python 2.7.8解壓文件。當我嘗試提取包含具有相同名稱的文件的zip文件到一個文件夾時,某些文件由於重複名稱而丟失。我嘗試:使用Python將文件解壓縮到一個文件夾

import zipfile,fnmatch,os 

rootPath = r"C:\zip" 
pattern = '*.zip' 
for root, dirs, files in os.walk(rootPath): 
    for filename in fnmatch.filter(files, pattern): 
     print(os.path.join(root, filename)) 
     outpath = r"C:\Project\new" 
     zipfile.ZipFile(os.path.join(root, filename)).extractall(r"C:\Project\new") 

UPDATE:

我嘗試提取位於zip文件到一個文件夾內的所有文件,而不只是創造了一個新的子文件夾。如果有同名的文件,我需要所有文件

回答

0

ZipFile.extractall()方法只是簡單地提取文件並將它們逐個存儲在目標路徑中。如果要保留重複名稱的文件,則必須使用ZipeFile.namelist()迭代成員,並在檢測到重複項時採取適當的措施。 ZipFile.read()允許您閱讀文件內容,然後您可以將它們寫入任何地方(以及任何名稱)你想要的。

相關問題