Python Unzip как распаковать zip файл в python
Python Unzip
Zip-файлы — один из самых популярных архивов и форматов сжатия в современную эпоху. Он относительно прост, бесплатен в использовании и поддерживается всеми платформами.
В этом руководстве вы узнаете, как можно разархивировать файлы с помощью модуля ZipFile в Python.
Модуль Python ZipFile
Python предоставляет нам модуль ZipFile, который предоставляет набор методов для управления операциями сжатия zip-файлов.
Чтобы разархивировать zip-файл с помощью модуля ZipFile, мы можем использовать функцию extractall(). Синтаксис показан ниже:
ZipFile.extractall(path=None, members=None, pwd=None)
Функция принимает три аргумента:
- Path — параметр path указывает на расположение zip-файла, который необходимо распаковать.
- Members — параметр member указывает список файлов и каталогов, которые необходимо разархивировать. Если этот параметр отсутствует, функция извлечет все файлы в zip-файле.
- Pwd — задает пароль для зашифрованного zip-архива.
Затем функция возьмет zip, по указанному пути, и извлечет из него все файлы. Если архив зашифрован, функция будет использовать параметр pwd для его извлечения.
Извлечение Zip в Python
Давайте рассмотрим простой пример извлечения zip-файла с помощью модуля extractall. В нашем примере мы будем использовать файл «sample.zip».
Рассмотрим приведенный ниже код примера:
from zipfile import ZipFile with ZipFile('sample.zip', 'r') as f: f.extractall()
В приведенном выше коде мы начинаем с импорта модуля ZipFile. Затем мы используем оператор with для открытия файла и извлечения файлов из zip-архива. Использование оператора with позволяет Python гарантировать, что дескрипторы открытых файлов будут закрыты после закрытия интерфейса выполнения.
Извлечение файлов в другой каталог в Python
В некоторых случаях нам может понадобиться извлечь файлы из архива в другой каталог. Мы можем указать путь к директории, которую хотим использовать, в функции extractall().
Пример кода показан ниже:
from zipfile import ZipFile with ZipFile('sample.zip', 'r') as f: f.extractall('./new_dir')
В приведенном выше коде функция извлечет файлы из sample.zip в new_dir.
Извлечение определенных файлов в Python
А что если вы хотите извлечь из zip-архива конкретные файлы, а не весь архив? Мы можем указать файлы, которые хотим извлечь, в списке Python.
Рассмотрим пример кода ниже:
from zipfile import ZipFile target_files = ['sample.pdf', 'sample.png', 'sample.llv'] with ZipFile('sample.zip', 'r') as f: f.extractall('./sample', members=target_files)
Здесь функция зайдет в zip и извлечет файлы, указанные в списке target_files.
Модуль Python Shutil
В Python есть еще один модуль, который мы можем использовать для извлечения zip-архива. Синтаксис функции показан ниже:
shutil.unpack_archive(filename[, extract_dir[, format]])
Функция принимает в качестве параметров имя файла, целевой каталог и формат.
Пример кода для извлечения zip-файла с помощью этого метода показан ниже:
from shutil import unpack_archive unpack_archive('sample.zip', './sample', "zip")
Приведенный выше код должен, в свою очередь, извлечь все файлы из указанного архива.
Заключение
В этой статье мы рассмотрели различные методы и способы извлечения архивного файла с помощью модулей Python zipfile и shutil.
Возможно вам будет интересно:
Математические библиотеки Python
# Python Unzip