将字符串转换为看起来像十六进制的字符串-在每两个字符中添加“ \ x”

时间:2018-08-16 21:01:17

标签: python python-2.7 hex binascii

这让我发疯,试图使字符串看起来像十六进制,但没有转换为十六进制(我认为)。最终结果是不带'\ x'的十六进制字符串(例如:5619F53BDBDB14814843 <<从Windows注册表中提取),并将其添加到每两个字符之间(例如:'\ x56 \ x19 \ xF5 \ x3B \ xDB \ xDB \ x14 \ x8B \ x43') 如果有更好的方法可以做到这一点,请告诉我。我可以用join来完成它,但是它添加两个反斜杠而不是一个,然后我不知道如何用1替换两个反斜杠。

# Trying to take the below hex value
# 5619F53BDBDB148B43
# And return it as
# \x56\x19\xF5\x3B\xDB\xDB\x14\x8B\x43
#
>>> s = '5619F53BDBDB148B43'
>>> t = iter(s)
>>> u = '\\x'.join(a+b for a,b in zip(t, t))
>>> v = '\\x' + u
>>> v
>>> '\\x56\\x19\\xF5\\x3B\\xDB\\xDB\\x14\\x8B\\x43'

您会看到它输出双斜杠而不是单斜杠。另外,如果可以利用Binascii做到这一点,那可能会更好。

我已经搜索堆栈溢出大约一个小时了,谷歌搜索并没有找到解决方案。

0 个答案:

没有答案