Запись и чтение архивных zip-файлов
Zip представляет наиболее популярный формат архивации и сжатия файлов. И язык Python имеет встроенный модуль для работы с ними - zipfile. С помощью этого модуля можно создавать, считывать, записывать zip-файлы, получать их содержимое и добавлять в них файлы. Также поддерживается шифрование, но не поддерживается дешифрование.
Для представления zip-файла в этом модуле определен класс ZipFile. Он имеет следующий конструктор:
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Zip представляет наиболее популярный формат архивации и сжатия файлов. И язык Python имеет встроенный модуль для работы с ними - zipfile. С помощью этого модуля можно создавать, считывать, записывать zip-файлы, получать их содержимое и добавлять в них файлы. Также поддерживается шифрование, но не поддерживается дешифрование.
Для представления zip-файла в этом модуле определен класс ZipFile. Он имеет следующий конструктор:
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Запись и чтение архивных zip-файлов. Продолжение.
Параметры:
• file: путь к zip-файлу
• mode: режим открытия файла. Может принимать следующие значения:
- r: применяется для чтения существующего файла
- w: применяется для записи нового файла
- a: применяется для добавления в файл
• compression: тип сжатия файла при записи. Может принимать значения:
- ZIP_STORED: архивация без сжатия (значение по умолчанию)
- ZIP_DEFLATED: стандартный тип сжатия при архивации в zip
- ZIP_BZIP2: сжатие с помощью способа BZIP2
- ZIP_LZMA: сжатие с помощью способа LZMA
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Параметры:
• file: путь к zip-файлу
• mode: режим открытия файла. Может принимать следующие значения:
- r: применяется для чтения существующего файла
- w: применяется для записи нового файла
- a: применяется для добавления в файл
• compression: тип сжатия файла при записи. Может принимать значения:
- ZIP_STORED: архивация без сжатия (значение по умолчанию)
- ZIP_DEFLATED: стандартный тип сжатия при архивации в zip
- ZIP_BZIP2: сжатие с помощью способа BZIP2
- ZIP_LZMA: сжатие с помощью способа LZMA
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Создание и закрытие файла.
Для создания архивного файла в конструктор ZipFile передается режим "w" или "a":
После выполнения кода в текущей папке будет создаваться пустой архивный файл "metanit.zip".
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Для создания архивного файла в конструктор ZipFile передается режим "w" или "a":
После выполнения кода в текущей папке будет создаваться пустой архивный файл "metanit.zip".
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Создание и закрытие файла. Продолжение.
После окончания работы с архивом для его закрытия применяется метод close():
Но так как ZipFile также представляет менеджер контекста, то он поддерживает выражение with, которое определяет контекст и автоматически закрывает файл по завершению контекста:
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
После окончания работы с архивом для его закрытия применяется метод close():
Но так как ZipFile также представляет менеджер контекста, то он поддерживает выражение with, которое определяет контекст и автоматически закрывает файл по завершению контекста:
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Запись файлов в архив.
Для записи файлов в архив применяется файл write():
Первый параметр представляет файл, который записиывается в архив. Второй параметр - arcname устанавливает произвольное имя для файла внутри архива (по умолчанию это само имя файла). Третий параметр - compress_type представляет тип сжатия, а параметр compresslevel - уровень сжатия.
Например, запишем в архив "metanit.zip" файл "hello.txt" (который, как предполагается, находится в той же папке, где и текущий скрипт python):
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Для записи файлов в архив применяется файл write():
Первый параметр представляет файл, который записиывается в архив. Второй параметр - arcname устанавливает произвольное имя для файла внутри архива (по умолчанию это само имя файла). Третий параметр - compress_type представляет тип сжатия, а параметр compresslevel - уровень сжатия.
Например, запишем в архив "metanit.zip" файл "hello.txt" (который, как предполагается, находится в той же папке, где и текущий скрипт python):
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Запись файлов в архив. Продолжение.
Стоит учитывать, что при открытии файла в режиме "w" при всех последующих записях текущее содержимое будет затираться, то есть фактически архивный файл будет создаваться заново. Если нам необходимо добавить, то необходимо определять zip-файл в режиме "a":
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы
Стоит учитывать, что при открытии файла в режиме "w" при всех последующих записях текущее содержимое будет затираться, то есть фактически архивный файл будет создаваться заново. Если нам необходимо добавить, то необходимо определять zip-файл в режиме "a":
🐍 Укус питона // 💬 Чат // #теория #запись #чтение #zip #файлы