Ordner rekursiv mit Python zippen (zipfile)

Dieses Skript zippt den Ordner myfolder rekursiv zu myzip. Beachten Sie, dass leere Verzeichnisse nicht in das ZIP kopiert werden.

zip_folder_recursive.py
#!/usr/bin/env python3
import zipfile
import os

# This folder
folder = "myfolder"

with zipfile.ZipFile(f"{folder}.zip", "w") as outzip:
    for subdir, dirs, files in os.walk(folder):
        for file in files:
            # Read file
            srcpath = os.path.join(subdir, file)
            dstpath_in_zip = os.path.relpath(srcpath, start=folder)
            with open(srcpath, 'rb') as infile:
                # Write to zip
                outzip.writestr(dstpath_in_zip, infile.read())

Check out similar posts by category: Python