Найти - Пользователи
Полная версия: Pyserial. Как преобразовать hex строки типа '\xfe'?
Начало » Python для новичков » Pyserial. Как преобразовать hex строки типа '\xfe'?
1
smiley
Доброго времени суток!В питоне я новчиек, так что не судите строго.

Использую модуль pyserial, для общения со схемой с микроконтроллером через com порт.
При считывании данных, для примера:

s=serial.Serial(0);
dataRead=s.read(1);

получаю в dataRead считанные значени в виде строк, к примеру ‘\xfe’. Тк с мк я передаю не текст, хочется как-то вытащить из этого формата собственно само число, те к примеру ‘\xfe’-> 0xFE.
Было бы ‘0xfe’ -нет проблем, но с escape как то не получается.

Подскажите пожалуйста как это сделать? :(


UPD:
прошу прощени:)
Стоило только отчаяться и запостить вопрос на форуме как тут же нашел ответ(вроде).
ответом послужила: ord()

Взято с http://code.activestate.com/recipes/510399/.
regall
>>> x = '\xfe'
>>> ord(x)
254
>>> hex(ord(x))
'0xfe'
>>>
PooH
import struct
bw
Это конечно не то что нужно, но вещь полезная и не очевидная (пристальнее вглядываемся в кодировки, поддерживаемые пакетом encodings):
>>> s1 =  '\xfe'
>>> s2 = r'\xfe'
>>> s1 == s2
False
>>> s1 == s2.decode('string-escape')
True
>>> ord(s1)
254
>>> ord(s2.decode('string-escape'))
254
..bw
.Serj.
Ещё один корявый способ:
In [1]: from binascii import b2a_hex 

In [2]: '0x' + b2a_hex('\xfe')
Out[2]: '0xfe'
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB