2010-08-10 74 views
140

我通過zipfile模塊docs閱讀,但無法理解如何解壓文件,只有如何壓縮文件。如何將zip文件的所有內容解壓到同一目錄中?在python中解壓縮文件

回答

235
import zipfile 
zip_ref = zipfile.ZipFile(path_to_zip_file, 'r') 
zip_ref.extractall(directory_to_extract_to) 
zip_ref.close() 

這幾乎就是它!

+5

如果.zip存檔的內容是相同的,在所有的.zip存檔? 如何在提取之前重命名內容?例如:1.zip 2.zip ..全部包含content.txt:提取所有像1content.txt 2content.txt? – iratzhash 2016-04-07 16:59:50

+1

@Rahul - 以及我導入的是哪個庫 – 3kstc 2016-08-15 02:51:15

+1

@ 3kstc'import zipfile' – 2016-08-15 04:35:53

15

使用extractall方法,如果你如果您使用Python 3.2或更高版本使用Python 2.6+

zip = ZipFile('file.zip') 
zip.extractall() 
+0

你難道沒有指定目的地(zip.extractall(目的地))? – asonnenschein 2013-10-24 18:19:09

+2

若你只是提取到同一目錄中的壓縮文件 – 2013-12-04 20:01:31

+3

@DanGayle這似乎提取zip文件到當前工作目錄,zip文件 – 2017-06-09 14:41:02

106

import zipfile 
with zipfile.ZipFile("file.zip","r") as zip_ref: 
    zip_ref.extractall("targetdir") 

你不需要使用接近或嘗試/趕上這一點,因爲它使用 context manager建設

+10

的ZipFile也可以作爲一個上下文管理器2.7或不位置稍後:https://docs.python.org/2/library/zipfile.html#zipfile.ZipFile – blueCat 2017-01-22 15:01:53