Python 替换byte 中的\x 为0x

x=b'\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\xad\xe5\x9b\xbd\xe4\xba\xba'

我想把它们里面的x 都替换成 0x

尝试用替换命令

x.replace(b'\\x',b'0x')

发现无效。
尝试用正则re.sub 但,又不知道怎么写正则,试着写了几个都不对。

求高人指点下。。
谢谢!

阅读 7.1k
2 个回答

x=b'\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\xad\xe5\x9b\xbd\xe4\xba\xba'只是一个二进制的表示法,并不是里面有\x这个子字符串,\xe6表示的是一个字符(十六进制)。。。你可以用下面代码验证:

print(a[0])

输出的是 230,即\xe6(14 * 16 + 6 = 230)。

''.join([hex(_) for _ in x])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题