Converting all chars in a string to ascii hex in python

I suppose ''.join(r'\x{02:x}'.format(ord(c)) for c in mystring) would do the trick...

>>> mystring = "Hello World"
>>> print ''.join(r'\x{02:x}'.format(ord(c)) for c in mystring)
\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64

Something like:

>>> s = '123456'
>>> from binascii import hexlify
>>> hexlify(s)
'313233343536'

Based on Jon Clements's answer, try the codes on python3.7. I have the error like this:

>>> s = '1234'    
>>> hexlify(s)    
Traceback (most recent call last):    
  File "<pyshell#13>", line 1, in <module>    
    hexlify(s)    
TypeError: a bytes-like object is required, not 'str'

Solved by the following codes:

>>> str = '1234'.encode()    
>>> hexlify(str).decode()   
'31323334'

Tags:

Python

Ascii