Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 13, 2009 14:39:42

smiley
От:
Зарегистрирован: 2009-12-13
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyserial. Как преобразовать hex строки типа '\xfe'?

Доброго времени суток!В питоне я новчиек, так что не судите строго.

Использую модуль 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)

Офлайн

#2 Дек. 13, 2009 18:38:05

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Pyserial. Как преобразовать hex строки типа '\xfe'?

>>> x = '\xfe'
>>> ord(x)
254
>>> hex(ord(x))
'0xfe'
>>>



Офлайн

#3 Дек. 14, 2009 06:07:23

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Pyserial. Как преобразовать hex строки типа '\xfe'?

import struct



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Дек. 14, 2009 06:51:18

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Pyserial. Как преобразовать hex строки типа '\xfe'?

Это конечно не то что нужно, но вещь полезная и не очевидная (пристальнее вглядываемся в кодировки, поддерживаемые пакетом 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



Отредактировано (Дек. 14, 2009 06:54:16)

Офлайн

#5 Дек. 14, 2009 08:38:23

.Serj.
От:
Зарегистрирован: 2008-09-27
Сообщения: 181
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyserial. Как преобразовать hex строки типа '\xfe'?

Ещё один корявый способ:

In [1]: from binascii import b2a_hex 

In [2]: '0x' + b2a_hex('\xfe')
Out[2]: '0xfe'



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version