Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека работы с zip-архивами. Модуль zipfile

Доброго времени суток, читатели, зрители моего канала programmer's notes, любители языка Python. Не забывайте подписываться и писать свои
комментарии к моим статьям и видео.

Библиотека zipfile в Python

Данная библиотека позволяет программно работать с файлами-архивами. Читать список архива, извлекать из архива, писать и добавлять в архив. Речь идет именно о zip-архивах. На самом деле очень полезная в программировании библиотека. Часто требует убирать большое количество файлов в архивы, или наоборот осуществлять поиск по архивам.

Существуют библиотеки для работы с другими архивами. Например модуль lzma. Но это материалы для других статей. Я предполагаю, что читатель умеет работать с архивами (надеюсь).

И так, пример 1

#!/usr/bin/python3
import zipfile
nz = zipfile.ZipFile('arh.zip', 'r')
print(*nz.namelist(), sep='\n')

Архив arh.zip мной заранее подготовлен и он находится в текущем каталоге. Результат выполнения программы

1/
1/primer3.py
1/primer1.py
1/primer4.py
1/primer5.py
1/primer6.py
1/Таблица.csv
1/primer2.py
1/Таблица1.csv
p1.py
p2.py
p3.py
Таблица1.csv
Таблица2.csv
Таблица.csv

Пример 2. Распаковка архива в указанный каталог.

#!/usr/bin/python3
import zipfile
nz = zipfile.ZipFile('arh.zip')
nz.extractall('temp')

Архив распаковывается в каталог temp, который создаётся.

Пример 3.

#!/usr/bin/python3
import zipfile
nz = zipfile.ZipFile('arh.zip', 'r')
nz.extract('1/Таблица.csv', '.') # извлекаем конкретный файл

В результате извлекается конкретный файл.

Пример 4. Создание архива и помещения туда файла. zipfile.ZIP_DEFLATED - способ сжатия.

#!/usr/bin/python3
import zipfile
nz = zipfile.ZipFile('arc.zip', 'w', zipfile.ZIP_DEFLATED)
nz.write('./py1.py') # поместить в архив вместе с подкаталогами
nz.close()

Пример 5. Добавление в архив, если его нет, он создаётся

#!/usr/bin/python3
import zipfile
nz = zipfile.ZipFile('arc.zip', 'a', zipfile.ZIP_DEFLATED)
nz.write('./arh.zip') # добавить в архив вместе с подкаталогами
nz.close()


Ну пока всё. О других архивах поговорим в одной из будущих статей.

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Сдайте вашу программу в архив и забудьте о ней
Сдайте вашу программу в архив и забудьте о ней