Posted in

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

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

В 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.

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

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

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

    1. если не тяжело – какое решение использовали? 🙂

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *