Ограниченные возможности Google Auth и Chilkat Mailman

Я подготовил функцию, объединив решение Марка Байера с комментариями Реймунда и Мортена Зильмера (относительный путь и включая пустые каталоги). В качестве наилучшей практики with используется в построении файла ZipFile.

Функция также подготавливает имя файла zip по умолчанию с именем zipped directory и расширением «.zip». Поэтому он работает только с одним аргументом: исходный каталог должен быть заархивирован.

import os
import zipfile

def zip_dir(path_dir, path_file_zip=''):
if not path_file_zip:
    path_file_zip = os.path.join(
        os.path.dirname(path_dir), os.path.basename(path_dir)+'.zip')
with zipfile.ZipFile(path_file_zip, 'wb', zipfile.ZIP_DEFLATED) as zip_file:
    for root, dirs, files in os.walk(path_dir):
        for file_or_dir in files + dirs:
            zip_file.write(
                os.path.join(root, file_or_dir),
                os.path.relpath(os.path.join(root, file_or_dir),
                                os.path.join(path_dir, os.path.pardir)))
0
задан Andrew Truckle 4 March 2019 в 22:27
поделиться

0 ответов

Другие вопросы по тегам:

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