все 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Сообщить о неточности