在Python中解压文件

我通读了zipfile留档,但不明白如何解压缩文件,只知道如何压缩文件。我如何将zip文件的所有内容解压缩到同一个目录中?

1027173 次浏览
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
zip_ref.extractall(directory_to_extract_to)

差不多就这样了!

如果您使用的是Python 2.6+,请使用extractall方法

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

如果您使用的是python3.2或更高版本:

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

您不需要使用关闭尝试/捕捉,因为它使用 上下文管理器结构。

import os
zip_file_path = "C:\AA\BB"
file_list = os.listdir(path)
abs_path = []
for a in file_list:
x = zip_file_path+'\\'+a
print x
abs_path.append(x)
for f in abs_path:
zip=zipfile.ZipFile(f)
zip.extractall(zip_file_path)

如果文件不是zip,则不包含对文件的验证。如果文件夹包含非. zip文件,它将失败。

您也可以只导入ZipFile

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

适用于python2python3

试试这个:


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 : unzip file's path

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

您将提取文件的目录以前不需要存在,您在此时命名它

如果您的项目位于同一目录中,YOURZIP.zip是zip的名称。 如果没有,请使用PATH即:C://…//YOURZIP.zip

想通过路径中的另一个/来逃避/ 如果您有permission denied,请尝试以管理员身份启动您的ide(即:Anaconda)

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

如果你想在shell中完成,而不是编写代码。

 python3 -m zipfile -e myfiles.zip myfiles/

myfiles.zip是zip存档,myfiles是提取文件的路径。

zipfile是一个有点低级的库。除非你需要它提供的细节,否则你可以使用shutil的更高级别的函数make_archiveunpack_archive

make_archive已经在这个答案中描述。至于unpack_archive

import shutil
shutil.unpack_archive(filename, extract_dir)

unpack_archive自动从filename的“扩展”(.zip.tar.gz等)中检测压缩格式,make_archive也是如此。此外,filenameextract_dir可以是自Python 3.7以来的任何类路径对象(例如路径库实例)。