Документация Python неофициальный перевод

zipfile.md

350 строк · 31.0 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/zipfile.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 12.4. [`zipfile`](https://python-all.ru/2.7/library/zipfile.html#module-zipfile) – Работа с ZIP-архивами89Новое в версии 1.6.1011**Исходный код:** [Lib/zipfile.py](https://python-all.ru/src/2.7/Lib/zipfile.py)1213---1415Формат ZIP – распространённый стандарт архивации и сжатия. Этот модуль предоставляет инструменты для создания, чтения, записи, добавления и просмотра содержимого ZIP-файлов. Любое продвинутое использование модуля требует понимания формата, описанного в [PKZIP Application Note](https://python-all.ru/2.7/library/zipfile.html).1617Этот модуль в настоящее время не поддерживает многодисковые ZIP-файлы. Он может обрабатывать ZIP-файлы, использующие расширения ZIP64 (то есть ZIP-файлы размером более 4 Гбайт). Он поддерживает дешифрование зашифрованных файлов в ZIP-архивах, но в настоящее время не может создать зашифрованный файл. Дешифрование выполняется крайне медленно, так как реализовано на чистом Python, а не на C.1819Модуль определяет следующие элементы:2021#### `exception zipfile.BadZipfile`2223Исключение, возникающее при повреждённых ZIP-файлах (старое название: `zipfile.error`).2425#### `exception zipfile.LargeZipFile`2627Исключение, возникающее, когда ZIP-файлу требуется функциональность ZIP64, но она не включена.2829#### `class zipfile.ZipFile`3031Класс для чтения и записи ZIP-файлов. Подробнее о конструкторе см. раздел [Объекты ZipFile](https://python-all.ru/2.7/library/zipfile.html#zipfile-objects).3233#### `class zipfile.PyZipFile`3435Класс для создания ZIP-архивов, содержащих библиотеки Python.3637#### `class zipfile.ZipInfo([filename[, date_time]])`3839Класс для представления информации об элементе архива. Экземпляры этого класса возвращаются методами [`getinfo()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.getinfo) и [`infolist()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.infolist) объектов [`ZipFile`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile). Большинству пользователей модуля [`zipfile`](https://python-all.ru/2.7/library/zipfile.html#module-zipfile) не потребуется создавать их самостоятельно – достаточно использовать те, что созданы этим модулем. *filename* должен содержать полное имя элемента архива, а *date\_time* – кортеж из шести полей, описывающих время последнего изменения файла. Описание полей приведено в разделе [Объекты ZipInfo](https://python-all.ru/2.7/library/zipfile.html#zipinfo-objects).4041#### `zipfile.is_zipfile(filename)`4243Возвращает `True`, если *filename* является корректным ZIP-файлом (проверка по магическому числу), иначе возвращает `False`. *filename* может быть файлом или файлоподобным объектом.4445Изменено в версии 2.7: Поддержка файлов и файлоподобных объектов.4647#### `zipfile.ZIP_STORED`4849Числовая константа для несжатого элемента архива.5051#### `zipfile.ZIP_DEFLATED`5253Числовая константа для обычного метода сжатия ZIP. Для этого требуется модуль [`zlib`](https://python-all.ru/2.7/library/zlib.html#module-zlib). Другие методы сжатия в настоящее время не поддерживаются.5455> **См. также**56>57> **[Примечание по применению PKZIP](https://python-all.ru/2.7/library/zipfile.html)**58>59> Документация по формату ZIP-файлов от Фила Каца, создателя формата и используемых алгоритмов.60>61> **[Домашняя страница Info-ZIP](https://python-all.ru/2.7/library/zipfile.html)**62>63> Информация о программах для работы с ZIP-архивами и библиотеках для разработки проекта Info-ZIP.6465## 12.4.1. Объекты ZipFile6667#### `class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])`6869Открывает ZIP-файл, где *file* может быть либо путём к файлу (строка), либо файлоподобным объектом. Параметр *mode* должен быть `'r'` для чтения существующего файла, `'w'` для усечения и записи нового файла, или `'a'` для добавления к существующему файлу. Если *mode* равен `'a'` и *file* ссылается на существующий ZIP-файл, то в него добавляются новые файлы. Если *file* не ссылается на ZIP-файл, то к файлу добавляется новый ZIP-архив. Это предназначено для добавления ZIP-архива в другой файл (такой как `python.exe`).7071Изменено в версии 2.6: Если *mode* равен `a` и файл вообще не существует, он создаётся.7273*compression* – метод сжатия ZIP, используемый при записи архива, и должен быть [`ZIP_STORED`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZIP_STORED) или [`ZIP_DEFLATED`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZIP_DEFLATED); нераспознанные значения вызовут [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError). Если указан [`ZIP_DEFLATED`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZIP_DEFLATED), но модуль [`zlib`](https://python-all.ru/2.7/library/zlib.html#module-zlib) недоступен, также возникает [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError). По умолчанию используется [`ZIP_STORED`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZIP_STORED). Если *allowZip64* равен `True`, zipfile будет создавать ZIP-файлы с расширениями ZIP64, когда размер zip-файла превышает 2 ГБ. Если значение false (по умолчанию), [`zipfile`](https://python-all.ru/2.7/library/zipfile.html#module-zipfile) вызовет исключение, когда ZIP-файл потребует расширений ZIP64. Расширения ZIP64 отключены по умолчанию, потому что стандартные команды **zip** и **unzip** в Unix (утилиты InfoZIP) не поддерживают эти расширения.7475Изменено в версии 2.7.1: Если файл создан с режимом `'a'` или `'w'`, а затем вызван [`closed`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.close) без добавления каких-либо файлов в архив, в файл будут записаны соответствующие структуры ZIP для пустого архива.7677ZipFile также является контекстным менеджером и поэтому поддерживает оператор [`with`](https://python-all.ru/2.7/reference/compound_stmts.html#with). В примере *myzip* закрывается после завершения блока оператора [`with`](https://python-all.ru/2.7/reference/compound_stmts.html#with) – даже если возникло исключение:7879```python80with ZipFile('spam.zip', 'w') as myzip:81    myzip.write('eggs.txt')82```8384Новое в версии 2.7: Добавлена возможность использовать [`ZipFile`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile) в качестве менеджера контекста.8586#### `ZipFile.close()`8788Закрывает файл архива. Перед выходом из программы необходимо вызвать [`close()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.close), иначе важные записи не будут записаны.8990#### `ZipFile.getinfo(name)`9192Возвращает объект [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo) с информацией об элементе архива *name*. Вызов [`getinfo()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.getinfo) для имени, отсутствующего в архиве, приведёт к возникновению исключения [`KeyError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.KeyError).9394#### `ZipFile.infolist()`9596Возвращает список, содержащий объект [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo) для каждого элемента архива. Объекты расположены в том же порядке, что и их записи в реальном ZIP-файле на диске, если был открыт существующий архив.9798#### `ZipFile.namelist()`99100Возвращает список элементов архива по именам.101102#### `ZipFile.open(name[, mode[, pwd]])`103104Извлекает элемент из архива в виде файлоподобного объекта (ZipExtFile). *name* – это имя файла в архиве или объект [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo). Параметр *mode*, если указан, должен быть одним из следующих: `'r'` (по умолчанию), `'U'` или `'rU'`. Выбор `'U'` или `'rU'` включает поддержку [универсальных символов новой строки](https://python-all.ru/2.7/glossary.html#term-universal-newlines) в объекте только для чтения. *pwd* – пароль, используемый для зашифрованных файлов. Вызов [`open()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.open) на закрытом ZipFile вызовет [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError).105106> **Примечание**107>108> Объект, подобный файлу, доступен только для чтения и предоставляет следующие методы: [`read()`](https://python-all.ru/2.7/library/stdtypes.html#file.read), [`readline()`](https://python-all.ru/2.7/library/stdtypes.html#file.readline), [`readlines()`](https://python-all.ru/2.7/library/stdtypes.html#file.readlines), [`__iter__()`](https://python-all.ru/2.7/reference/datamodel.html#object.__iter__), `next()`.109110> **Примечание**111>112> Если ZipFile был создан передачей файлоподобного объекта в качестве первого аргумента конструктора, то объект, возвращаемый [`open()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.open), разделяет файловый указатель ZipFile. В таких условиях объект, возвращаемый [`open()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.open), не должен использоваться после выполнения любых дополнительных операций над объектом ZipFile. Если ZipFile был создан передачей строки (имени файла) в качестве первого аргумента конструктора, то [`open()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.open) создаст новый файловый объект, который будет удерживаться ZipExtFile, что позволяет ему работать независимо от ZipFile.113114> **Примечание**115>116> Методы [`open()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.open), [`read()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.read) и [`extract()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.extract) могут принимать имя файла или объект [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo). Это пригодится при попытке чтения ZIP-файла, содержащего элементы с повторяющимися именами.117118Новое в версии 2.6.119120#### `ZipFile.extract(member[, path[, pwd]])`121122Извлекает элемент из архива в текущий рабочий каталог; *member* должно быть его полным именем или объектом [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo)). Информация о файле извлекается максимально точно. *path* указывает другой каталог для извлечения. *member* может быть именем файла или объектом [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo). *pwd* – пароль, используемый для зашифрованных файлов.123124Возвращает нормализованный путь (каталог или новый файл).125126Новое в версии 2.6.127128> **Примечание**129>130> Если имя файла элемента является абсолютным путём, диск/UNC-точка и начальные (обратные) слеши будут удалены, например: `///foo/bar` становится `foo/bar` на Unix, а `C:\foo\bar` становится `foo\bar` на Windows. Все компоненты `".."` в имени файла элемента будут удалены, например: `../../foo../../ba..r` становится `foo../ba..r`. На Windows недопустимые символы (`:`, `<`, `>`, `|`, `"`, `?` и `*`) заменяются подчёркиванием (`_`).131132#### `ZipFile.extractall([path[, members[, pwd]]])`133134Извлекает все элементы из архива в текущую рабочую директорию. *path* задаёт другую директорию для извлечения. *members* – необязательный параметр, должен быть подмножеством списка, возвращаемого [`namelist()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.namelist). *pwd* – пароль для зашифрованных файлов.135136> **Предупреждение**137>138> Никогда не извлекайте архивы из ненадёжных источников без предварительной проверки. Возможно создание файлов за пределами *path*, например, элементов с абсолютными именами, начинающимися с `"/"`, или с именами, содержащими две точки `".."`.139140Изменено в версии 2.7.4: Модуль zipfile пытается предотвратить это. См. примечание [`extract()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.extract).141142Новое в версии 2.6.143144#### `ZipFile.printdir()`145146Выводит оглавление архива в `sys.stdout`.147148#### `ZipFile.setpassword(pwd)`149150Устанавливает *pwd* в качестве пароля по умолчанию для извлечения зашифрованных файлов.151152Новое в версии 2.6.153154#### `ZipFile.read(name[, pwd])`155156Возвращает байты файла *name* из архива. *name* – имя файла в архиве или объект [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo). Архив должен быть открыт для чтения или добавления. *pwd* – пароль, используемый для зашифрованных файлов; если указан, он переопределяет пароль по умолчанию, заданный с помощью [`setpassword()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.setpassword). Вызов [`read()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.read) на закрытом ZipFile вызовет [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError).157158Изменено в версии 2.6: Добавлен параметр *pwd*, и *name* теперь может быть объектом [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo).159160#### `ZipFile.testzip()`161162Читает все файлы в архиве и проверяет их CRC и заголовки файлов. Возвращает имя первого повреждённого файла или `None`. Вызов [`testzip()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.testzip) для закрытого ZipFile возбудит [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError).163164#### `ZipFile.write(filename[, arcname[, compress_type]])`165166Записывает файл с именем *filename* в архив, присваивая ему архивное имя *arcname* (по умолчанию оно будет таким же, как *filename*, но без буквы диска и с удалёнными начальными разделителями пути). Если указан, *compress\_type* переопределяет значение параметра *compression*, переданное конструктору для новой записи. Архив должен быть открыт в режиме `'w'` или `'a'` – вызов [`write()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.write) для ZipFile, созданного в режиме `'r'`, вызовет [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError). Вызов [`write()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.write) на закрытом ZipFile вызовет [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError).167168> **Примечание**169>170> Для ZIP-файлов не существует официальной кодировки имён файлов. Если у вас есть имена файлов в Юникоде, вы должны преобразовать их в байтовые строки в нужной кодировке перед передачей в [`write()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.write). WinZip интерпретирует все имена файлов как закодированные в CP437, также известной как DOS Latin.171172> **Примечание**173>174> Архивные имена должны быть относительными по отношению к корню архива, то есть не должны начинаться с разделителя пути.175176> **Примечание**177>178> Если `arcname` (или `filename`, если `arcname` не указан) содержит нулевой байт, имя файла в архиве будет обрезано по этому байту.179180#### `ZipFile.writestr(zinfo_or_arcname, bytes[, compress_type])`181182Записывает строку *bytes* в архив; *zinfo\_or\_arcname* – это либо имя файла, которое будет присвоено в архиве, либо экземпляр [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo). Если это экземпляр, должны быть указаны как минимум имя файла, дата и время. Если это имя, дата и время устанавливаются в текущие дату и время. Архив должен быть открыт в режиме `'w'` или `'a'` – вызов [`writestr()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.writestr) для ZipFile, созданного в режиме `'r'`, вызовет [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError). Вызов [`writestr()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.writestr) на закрытом ZipFile вызовет [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError).183184Если указан, *compress\_type* переопределяет значение, заданное для параметра *compression* в конструкторе для новой записи, или в *zinfo\_or\_arcname* (если это экземпляр [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo)).185186> **Примечание**187>188> При передаче экземпляра [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo) в качестве параметра *zinfo\_or\_arcname* используемый метод сжатия будет тем, который указан в элементе *compress\_type* данного экземпляра [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo). По умолчанию конструктор [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo) устанавливает этот элемент в [`ZIP_STORED`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZIP_STORED).189190Изменено в версии 2.7: Аргумент *compress\_type*.191192Также доступны следующие атрибуты данных:193194#### `ZipFile.debug`195196Уровень отладочного вывода. Может быть установлен от `0` (по умолчанию, без вывода) до `3` (максимальный вывод). Отладочная информация записывается в `sys.stdout`.197198#### `ZipFile.comment`199200Текст комментария, связанный с ZIP-файлом. При назначении комментария экземпляру [`ZipFile`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile), созданному в режиме 'a' или 'w', это должна быть строка длиной не более 65535 байт. Комментарии длиннее этого будут усечены в записанном архиве при вызове [`close()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.close).201202## 12.4.2. Объекты PyZipFile203204Конструктор [`PyZipFile`](https://python-all.ru/2.7/library/zipfile.html#zipfile.PyZipFile) принимает те же параметры, что и конструктор [`ZipFile`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile). Экземпляры имеют один дополнительный метод по сравнению с объектами [`ZipFile`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile).205206#### `PyZipFile.writepy(pathname[, basename])`207208Ищет файлы `*.py` и добавляет соответствующий файл в архив. Соответствующий файл – это файл `*.pyo`, если он доступен, иначе файл `*.pyc`, при необходимости компилируя. Если путь является файлом, имя файла должно заканчиваться на `.py`, и только (соответствующий) файл `*.py[co]` добавляется на верхний уровень (без информации о пути). Если путь является файлом, не заканчивающимся на `.py`, будет возбуждено [`RuntimeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.RuntimeError). Если это каталог, и каталог не является каталогом пакета, то все файлы `*.py[co]` добавляются на верхний уровень. Если каталог является каталогом пакета, то все `*.py[co]` добавляются под именем пакета как путь к файлу, и если какие-либо подкаталоги являются каталогами пакетов, все они добавляются рекурсивно. *basename* предназначен только для внутреннего использования. Метод [`writepy()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.PyZipFile.writepy) создаёт архивы с именами файлов, такими как:209210```python211string.pyc                                # Имя верхнего уровня212test/__init__.pyc                         # Каталог пакета213test/test_support.pyc                          # Модуль test.test_support214test/bogus/__init__.pyc                   # Каталог подпакета215test/bogus/myfile.pyc                     # Подмодуль test.bogus.myfile216```217218## 12.4.3. Объекты ZipInfo219220Экземпляры класса [`ZipInfo`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipInfo) возвращаются методами [`getinfo()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.getinfo) и [`infolist()`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile.infolist) объектов [`ZipFile`](https://python-all.ru/2.7/library/zipfile.html#zipfile.ZipFile). Каждый объект хранит информацию об одном элементе ZIP-архива.221222Экземпляры имеют следующие атрибуты:223224#### `ZipInfo.filename`225226Имя файла в архиве.227228#### `ZipInfo.date_time`229230Время и дата последнего изменения элемента архива. Это кортеж из шести значений:231232| Индекс | Значение |233| --- | --- |234| `0` | Год (\>= 1980) |235| `1` | Месяц (начиная с 1) |236| `2` | День месяца (начиная с 1) |237| `3` | Часы (начиная с 0) |238| `4` | Минуты (начиная с 0) |239| `5` | Секунды (начиная с 0) |240241> **Примечание**242>243> Формат ZIP-файлов не поддерживает метки времени до 1980 года.244245#### `ZipInfo.compress_type`246247Тип сжатия для элемента архива.248249#### `ZipInfo.comment`250251Комментарий для отдельного элемента архива.252253#### `ZipInfo.extra`254255Данные поля расширения. В [Примечании к приложению PKZIP](https://python-all.ru/2.7/library/zipfile.html) содержатся комментарии о внутренней структуре данных, содержащихся в этой строке.256257#### `ZipInfo.create_system`258259Система, создавшая ZIP-архив.260261#### `ZipInfo.create_version`262263Версия PKZIP, создавшая ZIP-архив.264265#### `ZipInfo.extract_version`266267Версия PKZIP, необходимая для извлечения архива.268269#### `ZipInfo.reserved`270271Должно быть равно нулю.272273#### `ZipInfo.flag_bits`274275Биты флагов ZIP.276277#### `ZipInfo.volume`278279Номер тома заголовка файла.280281#### `ZipInfo.internal_attr`282283Внутренние атрибуты.284285#### `ZipInfo.external_attr`286287Внешние атрибуты файла.288289#### `ZipInfo.header_offset`290291Смещение в байтах до заголовка файла.292293#### `ZipInfo.CRC`294295CRC-32 несжатого файла.296297#### `ZipInfo.compress_size`298299Размер сжатых данных.300301#### `ZipInfo.file_size`302303Размер несжатого файла.304305## 12.4.4. Интерфейс командной строки306307Модуль [`zipfile`](https://python-all.ru/2.7/library/zipfile.html#module-zipfile) предоставляет простой интерфейс командной строки для работы с ZIP-архивами.308309Чтобы создать новый ZIP-архив, укажите его имя после параметра [`-c`](https://python-all.ru/2.7/library/zipfile.html#cmdoption-zipfile-c) и перечислите имена файлов, которые нужно включить:310311```console312$ python -m zipfile -c monty.zip spam.txt eggs.txt313```314315Можно также передать каталог:316317```console318$ python -m zipfile -c monty.zip life-of-brian_1979/319```320321Чтобы извлечь ZIP-архив в указанный каталог, используйте параметр [`-e`](https://python-all.ru/2.7/library/zipfile.html#cmdoption-zipfile-e):322323```console324$ python -m zipfile -e monty.zip target-dir/325```326327Для получения списка файлов в ZIP-архиве используйте параметр [`-l`](https://python-all.ru/2.7/library/zipfile.html#cmdoption-zipfile-l):328329```console330$ python -m zipfile -l monty.zip331```332333### 12.4.4.1. Параметры командной строки334335#### `-l <zipfile>`336337Выводит список файлов в ZIP-архиве.338339#### `-c <zipfile> <source1> ... <sourceN>`340341Создать zip-файл из исходных файлов.342343#### `-e <zipfile> <output_dir>`344345Извлечь zip-файл в целевой каталог.346347#### `-t <zipfile>`348349Проверить, корректен ли zip-файл.350