
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.7.20] |
![]() |
|
Сообщ.
#1
,
|
|
|
Есть библа construct v2.9, наткнулся на старый код парсинга на v2.5
![]() ![]() from construct import * fmt = Struct('png', Magic(b'\x89PNG\r\n\x1a\n'), UBInt32('length'), Const(String('type', 4), b'IHDR'), UBInt32('width'), UBInt32('height') ) data = b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR' + \ b'\x00\x00\x00\x9a\x00\x00\x00\x8d\x08\x02\x00\x00\x00\xc0' result = fmt.parse(data) print(result) надо перевести этот пример на 2.9 https://construct.readthedocs.io/en/latest/ |
Сообщ.
#2
,
|
|
|
Сам все порешал
![]() После глубокого изучения нового синтаксиса понял что он изи ![]() ![]() ![]() fmt = Struct( 'signature' / Const(b'\x89PNG\r\n\x1a\n'), 'length' / Int32ub, 'type' / Const(b'IHDR'), 'width' / Int32ub, 'height' / Int32ub, 'bit depth' / Int8ub, 'colour type' / Int8ub, 'compression method' / Int8ub, 'filter method' / Int8ub, 'interlace method' / Int8ub ) Смутил оператор деления, но покопав сорcы construct все встало на места! ![]() |