2010-08-10 92 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