I read through the
zipfile documentation, but couldn’t understand how to unzip a file, only how to zip a file. How do I unzip all the contents of a zip file into the same directory?
import zipfile with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref: zip_ref.extractall(directory_to_extract_to)
That’s pretty much it!
extractall method, if you’re using Python 2.6+
zip = ZipFile('file.zip') zip.extractall()
If you are using Python 3.2 or later:
import zipfile with zipfile.ZipFile("file.zip","r") as zip_ref: zip_ref.extractall("targetdir")
You dont need to use the close or try/catch with this as it uses the
context manager construction.
import os zip_file_path = "C:AABB" 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)
This does not contain validation for the file if its not zip. If the folder contains non .zip file it will fail.
You can also import only
from zipfile import ZipFile zf = ZipFile('path_to_file/file.zip', 'r') zf.extractall('path_to_extract_folder') zf.close()
Works in Python 2 and Python 3.
try this :
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")
The directory where you will extract your files doesn’t need to exist before, you name it at this moment
YOURZIP.zip is the name of the zip if your project is in the same directory.
If not, use the PATH i.e : C://….//YOURZIP.zip
Think to escape the
/ by an other
/ in the PATH
If you have a
permission denied try to launch your ide (i.e: Anaconda) as administrator
YOUR_DESTINATION_DIRECTORY will be created in the same directory than your project
If you want to do it in shell, instead of writing code.
python3 -m zipfile -e myfiles.zip myfiles/
myfiles.zip is the zip archive and
myfiles is the path to extract the files.
make_archive is already described in this answer. As for
import shutil shutil.unpack_archive(filename, extract_dir)
unpack_archive detects the compression format automatically from the "extension" of
.tar.gz, etc), and so does
extract_dir can be any path-like objects (e.g. pathlib.Path instances) since Python 3.7.