Я использую pyparser для обработки вывода преобразователя шестнадцатеричного текста в текст. Он выводит по 16 символов в строке, разделенных пробелами. Если шестнадцатеричное значение является печатным символом ASCII, этот символ печатается, в противном случае преобразователь выводит точку (.)
В основном вывод выглядит так:
. a . v a l i d . s t r i n g .
. a n o t h e r . s t r i n g .
. e t c . . . . . . . . . . . .
Мой код pyparsing для описания этой строки:
dump_line = 16 * Word(printables, exact=1)
Это работает нормально, пока преобразователь шестнадцатеричного значения в текст не достигнет шестнадцатеричного значения 0x20, что приведет к выводу пробела.
l i n e . w . a . s p a c e .
В этом случае pyparsing игнорирует выводимое пространство и берет символы из следующей строки, чтобы сделать «квоту» в 16 символов.
Может кто-нибудь предложить, как я могу сказать pyparsing ожидать 16 символов, каждый из которых разделен пробелом, где пробел также может быть допустимым символом?
Заранее спасибо. Дж