Я использую 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 . . . . . . . . . . . .
Мой код преобразованияЧтобы описать эту строку:
dump_line = 16 * Word(printables, exact=1)
Это работает нормально, пока преобразователь шестнадцатеричного текста не достигнет шестнадцатеричного значения 0x20, что заставляет его выводить пробел.
l i n e . w . a . s p a c e .
В этом случае pyparsing игнорирует выводимый пробел и занимает символы из следующей строки, чтобы сделать «квоту» из 16 символов.
Может кто-нибудь подсказать, как я могу сказать, что pyparsing ожидает 16 символов, каждый из которых разделенчерез пробел, где пробел также может быть действительным символом?
Заранее спасибо.J