Как архивировать файлы без каталогов с помощью Python?

Функция получает список каталогов и файлов, создает из них архив. Как избавится от каталогов в архиве, чтобы в нем были только файлы?
UPD: То есть сейчас в архиве получается так:
folder1/folder2/file0
file2

а надо так:
file0, file2

#!/usr/bin/python3
import os
from zipfile import ZipFile
from logger import log_info, log_error


def addFolderToZip(zip_file, folder):
    for file in os.listdir(folder):
        full_path = os.path.join(folder, file)
        if os.path.isfile(full_path) and os.path.exists(full_path):
            zip_file.write(full_path)
        elif os.path.isdir(full_path) and os.path.exists(full_path):
            addFolderToZip(zip_file, full_path)


def zip(zip_name, files):
    # create a ZipFile object
    zip_obj = ZipFile(zip_name, 'w')

    # Add multiple files to the zip
    for file in files:
        if os.path.exists(file):
            if os.path.isfile(file):
                try:
                    zip_obj.write(file)
                except Exception as e:
                    log_error("Ошибка zip, %s" % e)
            else:
                addFolderToZip(zip_obj, file)

    # close the Zip File
    zip_obj.close()
  • Вопрос задан
  • 1050 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы