У меня есть следующие требования (от клиента) для архивирования ряда файлов.
Если созданный zip-файл меньше 2**31-1 ~2 ГБ, используйте сжатие для его создания (используйте zipfile.ZIP_DEFLATED), в противном случае не сжимайте его (используйте zipfile.ZIP_STORED).
Текущее решение состоит в том, чтобы сжать файл без zip64 и перехватить исключение zipfile.LargeZipFile, чтобы затем создать несжатую версию.
Мой вопрос заключается в том, стоит ли пытаться рассчитать (приблизительно), превысит ли zip-файл размер zip64 без фактической обработки всех файлов, и как лучше всего это сделать? Процесс архивирования таких больших объемов данных медленный, и сведение к минимуму обработки дублирующего сжатия может немного ускорить его.
Изменить: я бы поддержал оба решения, так как думаю, что могу создать полезную эвристику из комбинации максимального и минимального размеров файлов и коэффициентов сжатия. К сожалению, в настоящее время StackOverflow не позволяет мне голосовать за что-либо (пока у меня не будет репутации выше нуба). Спасибо за хорошие предложения.