在python中解压缩文件

时间:2010-08-10 16:19:33

标签: python zip unzip zipfile

我通读了zipfile模块文档,但无法理解如何解压缩文件,只知道如何压缩文件。如何将zip文件的所有内容解压缩到同一目录中?

9 个答案:

答案 0 :(得分:496)

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

这就是它!

答案 1 :(得分:253)

如果您使用 Python 3.2 或更高版本:

{{1}}

您不需要使用关闭尝试/捕获,因为它使用 context manager建设。

答案 2 :(得分:30)

如果您使用的是Python 2.6 +

,请使用extractall方法
zip = ZipFile('file.zip')
zip.extractall()

答案 3 :(得分:6)

zipfile是一个有点底层的库。除非您需要它提供的详细信息,否则您可以摆脱shutilmake_archive的高级功能。

make_archive已在unpack_archive答案中进行了描述。至于unpack_archive

import shutil
shutil.unpack_archive(filename, extract_dir)

unpack_archivefilename.zip.tar.gz等)的“扩展名”中自动检测压缩格式,make_archive也是如此。另外,filenameextract_dir可以是Python 3.7以来的任何this对象(例如path-like实例)。

答案 4 :(得分:3)

from zipfile import ZipFile
ZipFile("YOURZIP.zip").extractall("YOUR_DESTINATION_DIRECTORY")

您之前不需要存在要提取文件的目录,现在您将其命名

如果您的项目位于同一目录中,

YOURZIP.zip是zip的名称。 如果没有,请使用PATH,即:C://....//YOURZIP.zip

请考虑通过PATH中的其他/来逃避/ 如果您有permission denied,请尝试以管理员身份启动您的IDE(即Anaconda)

将在与您的项目相同的目录中创建您的_DESTINATION_DIRECTORY

答案 5 :(得分:2)

如果要在shell中进行操作,而不是编写代码。

 python3 -m zipfile -e myfiles.zip myfiles/

myfiles.zip是zip压缩文件,myfiles是提取文件的路径。

答案 6 :(得分:1)

mv

如果文件不是zip,则不包含文件验证。如果文件夹包含非.zip文件,则会失败。

答案 7 :(得分:1)

您也只能导入ZipFile

from zipfile import ZipFile
zf = ZipFile('path_to_file/file.zip', 'r')
zf.extractall('path_to_extract_folder')
zf.close()

Python 2 Python 3 中工作。

答案 8 :(得分:0)

尝试一下:     


import zipfile
def un_zipFiles(path):
    files=os.listdir(path)
    for file in files:
        if file.endswith('.zip'):
            filePath=path+'/'+file
            zip_file = zipfile.ZipFile(filePath)
            for names in zip_file.namelist():
                zip_file.extract(names,path)
            zip_file.close() 

path:解压缩文件的路径