#python #zip #zlib #deflate
Вопрос:
Я пишу СПУЩЕННЫЙ распаковщик (на Python) и хочу протестировать его с блоками типа 01 (т. Е. с фиксированным кодом Хаффмана в 3.2.6. RFC 1951.
Я знаю, что могу создать их сам, но я хотел бы протестировать их с помощью блоков, созданных каким-либо другим кодом, например zlib. Как я могу это сделать? До сих пор, по данным моего тестирования, zlib всегда создавал блоки типа 02 (т. е. динамические коды Хаффмана) или блоки типа 00 (не сжатые).
(В конечном счете это будет использоваться в коде распаковки)
Ответ №1:
Ну выяснил как: переходя strategy=zlib.Z_FIXED
к compressobj
import zlib
compressobj = zlib.compressobj(wbits=-zlib.MAX_WBITS, strategy=zlib.Z_FIXED)
compressed_stream = compressobj.compress(b'Some data') compressobj.flush()