Python: как преобразовать строку, содержащую шестнадцатеричные байты в шестую строку

Я думаю, что binascii – это модуль, который я ищу, но я не могу получить точные результаты, которые я ищу.

Вот что я хочу сделать. Я хочу конвертировать:

>>> s = '356a192b7913b04c54574d18c28d46e6395428ab' >>> print len(s) 40 

в

 >>> hs = '\x35\x6a\x19\x2b\x79\x13\xb0\x4c\x54\x57\x4d\x18\xc2\x8d\x46\xe6\x39\x54\x28\xab' >>> print len(hs) 20 

Любой Pythonistas знает о здоровом (или, честно говоря, функциональном) способе сделать это?

2 Solutions collect form web for “Python: как преобразовать строку, содержащую шестнадцатеричные байты в шестую строку”

Самое простое решение в Python 2.x:

 >>> s = '356a192b7913b04c54574d18c28d46e6395428ab' >>> s.decode("hex") '5j\x19+y\x13\xb0LTWM\x18\xc2\x8dF\xe69T(\xab' 

Вторая строка эквивалентна

 binascii.a2b_hex(s) 

С модулем binascii :

 >>> from binascii import unhexlify >>> s = '356a192b7913b04c54574d18c28d46e6395428ab' >>> unhexlify(s) '5j\x19+y\x13\xb0LTWM\x18\xc2\x8dF\xe69T(\xab' 
  • Разделение разделенных запятыми строк в python
  • Почему MutableString устарела в Python?
  • Как работает функция python difflib.get_close_matches ()?
  • Поиск двойных пробелов в строке - Python
  • Преобразование списка строк в массиве numpy более быстрым способом
  • Как форматировать строку, используя словарь в python-3.x?
  • Как напечатать вывод строки «Pretty» в Python
  • Как выполнить строку, содержащую код Python в Python?
  • Python - лучший язык программирования в мире.