Python Glossary English

все Python 3shutilфункция

shutil.register_archive_format()

архивы

Регистрирует свой формат архива для make_archive(): имя связывается с функцией, которая создаёт архив.

Синтаксис

shutil.register_archive_format(name, function, extra_args=None, description='')

Функция вызывается как function(base_name, base_dir, **kwargs) и обязана вернуть имя созданного файла — make_archive возвращает именно его. Регистрация живёт только в текущем процессе и молча заменяет формат с тем же именем, даже встроенный 'zip'. Для распаковки нужен отдельный register_unpack_format — форматы создания и распаковки независимы.

Примеры

import os, shutil
def listing(base_name, base_dir, **kwargs):
    path = base_name + '.lst'
    with open(path, 'w') as f:
        f.write('\n'.join(sorted(os.listdir(base_dir))))
    return path
shutil.register_archive_format('lst', listing, description='file list')
os.mkdir('data')
open('data/a.txt', 'w').close()
print(shutil.make_archive('out', 'lst', base_dir='data'))  # → out.lst
print(open('out.lst').read())  # → a.txt

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности