Код Python для архивирования папки: несколько методов архивирования файлов

Вот фрагмент кода Python для архивирования папки:

import zipfile
import os
def zip_folder(folder_path, output_path):
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                zipf.write(file_path, os.path.relpath(file_path, folder_path))
# Example usage
folder_path = '/path/to/folder'
output_path = '/path/to/output.zip'
zip_folder(folder_path, output_path)

Этот код использует модуль zipfileдля создания zip-файла и модуль osдля перемещения по структуре папок и добавления файлов в zip-архив. Вам необходимо указать в переменной folder_pathпуть к папке, которую вы хотите заархивировать, а в переменной output_pathуказать желаемый путь и имя файла для полученного zip-файла.

Вот несколько дополнительных методов, которые можно использовать для архивирования папки в Python:

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

    import shutil
    shutil.make_archive(output_path, 'zip', folder_path)
  2. Использование модуля tarfileдля создания файла tar и последующего сжатия его с помощью gzip:

    import tarfile
    import gzip
    def zip_folder(folder_path, output_path):
    with tarfile.open(output_path, 'w:gz') as tar:
        tar.add(folder_path, arcname=os.path.basename(folder_path))
    # Example usage
    folder_path = '/path/to/folder'
    output_path = '/path/to/output.tar.gz'
    zip_folder(folder_path, output_path)
  3. Использование модуля subprocessдля выполнения инструмента командной строки zip:

    import subprocess
    subprocess.run(['zip', '-r', output_path, folder_path])