Застегните несколько отдельных папок в один zip-файл - PullRequest
1 голос
/ 30 апреля 2019

У меня есть куча папок с данными, и мне нужно отправить определенные папки в zip-папку.Я могу переместить их с помощью командного файла, но он не будет автоматически архивироваться, а затем у меня будет избыточность.Я также попробовал решение, которое увидел.

import os
import zipfile    

def zipit(folders, zip_filename):
    zip_file = zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED)

    for folder in folders:
        for dirpath, dirnames, filenames in os.walk(folder):
            for filename in filenames:
                zip_file.write(
                    os.path.join(dirpath, filename),
                    os.path.relpath(os.path.join(dirpath, filename), 
os.path.join(folders[0], '../..')))

    zip_file.close()


    folders = [
        "\Users\andria.baunee\Desktop\New folder",
        "\Users\andria.baunee\Desktop\New folder (2)",
        "\Users\andria.baunee\Desktop\New folder (3)"]


    zipit(folders, "\Users\andria.baunee\Desktop\hooray.zip")

Казалось, ничего не произошло.

...