Способов создания zip-архива с сохранением структуры папок в Python

Способов создания zip-архива с сохранением структуры папок в Python

Способов создания zip-архива с сохранением структуры папок в Python

В Python существует несколько способов создания zip-архива с сохранением структуры папок. Один из наиболее распространенных способов — использование модуля zipfile. Давайте рассмотрим примеры.

1. Использование модуля zipfile



import zipfile  # Импорт модуля для работы с zip-архивами

import os  # Импорт модуля для работы с операционной системой



def zip_directory(directory, zip_file):

    """

    Функция для создания zip-архива с сохранением структуры папок.



    Аргументы:

        directory (str): Путь к директории, которую нужно заархивировать.

        zip_file (str): Имя создаваемого архива.



    Возвращает:

        None

    """

    with zipfile.ZipFile(zip_file, 'w', zipfile.ZIP_DEFLATED) as zipf:  # Открытие zip-архива для записи

        for root, _, files in os.walk(directory):  # Итерация по всем файлам и подпапкам в указанной директории

            for file in files:  # Итерация по всем файлам в текущей папке

                file_path = os.path.join(root, file)  # Полный путь к текущему файлу

                relative_path = os.path.relpath(file_path, os.path.join(directory, '..'))  # Относительный путь файла относительно директории, которую мы архивируем

                zipf.write(file_path, relative_path)  # Добавление файла в архив с сохранением относительной структуры папок



# Пример использования:

directory_to_zip = 'путь_к_директории'  # Укажите путь к директории, которую вы хотите заархивировать

zip_file = 'название_архива.zip'  # Укажите имя для создаваемого архива

zip_directory(directory_to_zip, zip_file)  # Вызов функции для создания архива



Этот код создаст zip-архив, содержащий все файлы и подпапки указанной директории directory_to_zip, сохраняя при этом их структуру.

2. Использование библиотеки shutil

import shutil



def zip_directory_shutil(directory, zip_file):

    shutil.make_archive(zip_file, 'zip', directory)



# Пример использования:

directory_to_zip = 'путь_к_директории'  # Укажите путь к директории, которую вы хотите заархивировать

zip_file = 'название_архива.zip'  # Укажите имя для создаваемого архива (без расширения .zip)

zip_directory_shutil(directory_to_zip, zip_file)

Этот код также создаст zip-архив, содержащий все файлы и подпапки указанной директории directory_to_zip, сохраняя при этом их структуру.

Таким образом, вот в Python существует несколько способов создать zip-архивы папки с сохранением структуры директорий.

С другими возможностями языка Python, вы можете ознакомиться в моем видеокурсе Программирование на Python с Нуля до Гуру.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий