Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[52.15.59.163] |
|
Сообщ.
#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 все встало на места! |