Я пытаюсь создать zip-архив из, возможно, огромной папки.
Для этого я использую модуль python zipfile, но, насколько я вижу, нет возможности разбить созданный архив на несколько частей с максимальным размером.
Предполагается, что заархивированный архив отправляется через Telegram с ограничением размера в 1,5 ГБ на файл. Тем самым мне нужно разделить полученный ZIP-архив.
Мне бы очень не хотелось использовать команды подпроцесса и оболочки для создания этого архива.
Мой текущий код выглядит так:
def create_zip(archive_name, directory):
"""Create a zip file from given dir path."""
with ZipFile(archive_name, "w", ZIP_LZMA) as target_zip_file:
for root, _, files in os.walk(directory):
for file_to_zip in files:
absolute_path = os.path.join(root, file_to_zip)
zip_file_name = absolute_path[len(directory) + len(os.sep):]
target_zip_file.write(absolute_path, zip_file_name)
return target_zip_file
Заранее спасибо