Форум сайта python.su
Доброго времени суток!В питоне я новчиек, так что не судите строго.
Использую модуль pyserial, для общения со схемой с микроконтроллером через com порт.
При считывании данных, для примера:
s=serial.Serial(0);
dataRead=s.read(1);
получаю в dataRead считанные значени в виде строк, к примеру ‘\xfe’. Тк с мк я передаю не текст, хочется как-то вытащить из этого формата собственно само число, те к примеру ‘\xfe’-> 0xFE.
Было бы ‘0xfe’ -нет проблем, но с escape как то не получается.
Подскажите пожалуйста как это сделать? :(
UPD:
прошу прощени:)
Стоило только отчаяться и запостить вопрос на форуме как тут же нашел ответ(вроде).
ответом послужила: ord()
Взято с http://code.activestate.com/recipes/510399/.
Отредактировано (Дек. 13, 2009 15:07:02)
Офлайн
>>> x = '\xfe'
>>> ord(x)
254
>>> hex(ord(x))
'0xfe'
>>>
Офлайн
import struct
Офлайн
Это конечно не то что нужно, но вещь полезная и не очевидная (пристальнее вглядываемся в кодировки, поддерживаемые пакетом encodings):
>>> s1 = '\xfe'
>>> s2 = r'\xfe'
>>> s1 == s2
False
>>> s1 == s2.decode('string-escape')
True
>>> ord(s1)
254
>>> ord(s2.decode('string-escape'))
254
Отредактировано (Дек. 14, 2009 06:54:16)
Офлайн
Ещё один корявый способ:
In [1]: from binascii import b2a_hex
In [2]: '0x' + b2a_hex('\xfe')
Out[2]: '0xfe'
Офлайн