Python Unzip как распаковать zip файл

1893
Python Unzip как распаковать zip файл
Python Unzip как распаковать zip файл

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)

Функция принимает три аргумента:

  1. Path — параметр path указывает на расположение zip-файла, который необходимо распаковать.
  2. Members — параметр member указывает список файлов и каталогов, которые необходимо разархивировать. Если этот параметр отсутствует, функция извлечет все файлы в zip-файле.
  3. 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