Print a string as hex bytes?

Eduard Florinescu picture Eduard Florinescu · Aug 31, 2012 · Viewed 400.3k times · Source

I have this string: Hello world !! and I want to print it using Python as 48:65:6c:6c:6f:20:77:6f:72:6c:64:20:21:21.

hex() works only for integers.

How can it be done?

Answer

Fedor Gogolev picture Fedor Gogolev · Aug 31, 2012

Your can transform your string to a int generator, apply hex formatting for each element and intercalate with separator:

>>> s = "Hello world !!"
>>> ":".join("{:02x}".format(ord(c)) for c in s)
'48:65:6c:6c:6f:20:77:6f:72:6c:64:20:21:21