Categories: Python

Python: как добавить файлы в архив .zip

В python 3.5 есть очень полезный модуль — zipfile. С помощью него можно читать zip-архивы, а что самое главное — создавать новые. Мне для одной темы понадобилось создавать архивы массово, по 20 файлов в архиве. И для решения этой задачи я как раз и воспользовался библиотекой zipfile. В этой статье я покажу примеры использования zipfile в python.

Как установить модуль zipfile

У меня стоит версия питона 3.5 и модуль zipfile входит в его состав. Для его вызова достаточно написать привычное import zipfile. Если в вашей версии питона нет этой библиотеки, то ее можно установить через pip или easy install.

Как создать zip-архив

Импортируем модуль, создаем, закрываем файл. Код:

import zipfile #подключаем модуль
newzip=zipfile.ZipFile(r'C:\bdseoru.zip','w') #создаем архив
newzip.close() #закрываем архив

На экран естественно ничего не появится, тут нет print. Если хотите увидеть что все ок — добавьте print, а еще лучше — воспользуйтесь исключениями.

import zipfile #подключаем модуль

try:
    newzip=zipfile.ZipFile(r'C:\bdseoru.zip','w') #создаем архив
    print("Архив bdseoru.zip на диске С:/ создан.")
    newzip.close() #закрываем архив
except:
    print("Что-то пошло не так...")

Результат — на диске С появился архив размером 22 байта.

Как добавить файлы в zip-архив через python

import zipfile #подключаем модуль
zname=r'D:\bdseoru.zip' #создаем переменную - название и местоположение файла
newzip=zipfile.ZipFile(zname,'w') #создаем архив
newzip.write(r'D:\kakzarabotat_milion.txt') #добавляем файл в архив
newzip.write(r'D:\blogwebmastera_links.txt') #добавляем файл2 в архив
newzip.close() #закрываем архив

В коде выше я добавил два файла. Если нужно добавить много файлов с какой-то папки воспользуйтесь циклом. А для чтения с папок модуль os.

Как прочитать содержимое архива через питон

import zipfile
zip1 = zipfile.ZipFile('C:\example_bdseoru.zip', 'r')
print(zip1.namelist())

В общем, модуль zipfile решает много задач. Более подробнее о zipfile читайте на странице документации:
https://docs.python.org/3/library/zipfile.html.
Также советую заглянуть сюда — https://pymotw.com/3/zipfile/ , там есть примеры использования zipfile.

veniamin

View Comments

  • Могли бы вы мне помочь? Имеется кучка картинок формата png. Хочу их спрятать в архив и  в случае необходимости чтобы программа брала картинки из архива, причем планирую запароленый архив.
    Как именно обратиться к определенной картинке при этом?

    • Если правильно понял, прочесть/открыть файл, задав пароль.
      ZipFile.read("name_file.png", pwd="yourPassword")

  • А всё, можете не отвечать, я посёрфил по форумникам и нашёл, как это делается.

    • если не тяжело - какое решение использовали? :)

  • А как добавить целую директорию? Когда я указываю просто путь к папке, в которой фалы, оно копирует мне в архив только саму папку, но не файлы в ней.

    • я наверное начал бы с for file in os.listdir(path2dir)

Recent Posts

Бонус 100 USDT +10 BUSD от Binance

Биржа криптовалют Binance проводит сейчас промо-акцию: новым пользователям дают ваучеры в сумме 110 долларов. Деньги…

2 года ago

Как парсить длительность видео youtube на php в привычном виде

Самый главный момент в работе с youtube - это получить ключ api через консоль разработчика…

2 года ago

Как удалить чужую сессию пользователя в ubuntu (linux)

Арендую сервер для небольшого проекта на python. И вот приходит мне уведомление, что за сутки…

2 года ago

Как наложить watermark на видео в python windows массово

Тестирую одну схему, и нужно на много видео наложить watermark. Решил делать через Python 3,…

3 года ago

Kwork.ru: опыт поиска исполнителя и поздравление

Пришла в голову одна интересная идея. Связанно с тиктоком. Решил поискать исполнителя, который будет монтировать…

3 года ago

Отзыв о Накрутке подписчиков instagram через Socpublic в автоматическом режиме

Решил проверить "автоматическую" накрутку подписчиков в инстаграмме через сервис активной рекламы Socpublic.com. Сразу скажу -…

3 года ago