Судя по количеству публикаций c реализацией алгоритма распаковки/запаковки контейнеров 1С их не писал только ленивый. Уже существуют решения на C++, Java, C#, Lua и много что еще. А теперь будет и на Python.
На самом делее реализация распаковщика не была основной целью. Но в рамках развития модуля onec_dtools, о котором я писал в своей прошлой публикации, была добавлена поддержка работы с контейнерами 1С. Так что я решил собрать небольшое консольное приложение, для демонстрации этих возможностей.
В приложенном к публикации файле есть как исходники, так и упакованный exe для тех, кому лениво ставить Python.
Само консольное приложение имеет 2 режима:
1. Распаковка контейнера (parse) в указанный каталог. При этом вложенные контейнеры разархивируются и рекурсивно распаковываются.
py8unpack.exe -P in_filename out_dir_name
2. Упаковка каталога (build) в контейнер. Операция, полностью обратная предыдущей.
py8unpack.exe -B in_dir_name out_filename