Анон, поясни за питон. Получаю с com-порта пакетцы, проблема с отображением в читабельном виде строки с mac-адресом. Строка вида '\x00\x13\xa2\x00@\x98\xe9\x9e'. На самом деле собака это \x40. Т.е. питон сам говорит, что \x00\x13\xa2\x00@\x98\xe9\x9e' = \x00\x13\xa2\x00 \x40\x98\xe9\x9e'. Решил преобразовать в потребный вид следующим образом: »> value = '\x00\x13\xa2\x00@\x98\xe9\x9e' »> fix_value = ':'.join("{:02X}".format(ord(c)) for c in value) Пр идее преобразование должно отрабатывать и вернуть 00:13:a2:00:40:98:e9:9e, как я понимаю, но вместо этого возвращает нечто странное 27:5C:78:30:30:5C:78:31:33:5C:78:61:32:5C:78:30:30:40:5C:78:39:38:5C:78:65:61:5C:78:30:65:27. Где я мудак?
>>438298 В нормальной версии пифона из com-порта pyserial возвращает bytes. И для желаемого представления достаточно использовать: ":".join(map("{:0>2x}".format, received)) http://ideone.com/i8fszd
»> value = '\x00\x13\xa2\x00@\x98\xe9\x9e'
»> fix_value = ':'.join("{:02X}".format(ord(c)) for c in value)
Пр идее преобразование должно отрабатывать и вернуть 00:13:a2:00:40:98:e9:9e, как я понимаю, но вместо этого возвращает нечто странное 27:5C:78:30:30:5C:78:31:33:5C:78:61:32:5C:78:30:30:40:5C:78:39:38:5C:78:65:61:5C:78:30:65:27.
Где я мудак?