用python中的字符串中的字节替换'0xNN'

时间:2014-08-14 12:04:01

标签: python

我有字符串说

string1 = '0x000x200x300x00'

我想要像

这样的结果
result = '\x00\x20...'

我想替换每个' 0x'用' \ x' 。怎么做 ? 我在python中尝试过替换函数,如下所示

y = x.replace('0x', '\x')
y = x.replace('0x', '\\x')
y = x.replace('0x', r'\x')

但没有成功:(。 任何人都可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

string1.replace("0x","\\x") use `\\`  to escape the `\`

/也与\不同。

string1 = '0x000x200x300x00'
print string1.replace("0x","\\x")

\x00\x20\x30\x00

In [19]: string1 = '0x000x200x300x00'

In [20]: print string1.replace("0x","\\x") # str
\x00\x20\x30\x00

In [21]: string1.replace("0x","\\x") # repr
Out[21]: '\\x00\\x20\\x30\\x00'

答案 1 :(得分:0)

你到底想要完成什么?

我有点谨慎发布这个答案,因为它不会直接回答你的问题,但是我假设你想做一些字节错误(疯狂猜测)因为你的问题不是很明确。

如果是这样,那么这是另一个""你可能想做:

data = [int(_, 16) for _ in string1.split('0x')[1:]]

这将为您提供表示"字节"(?)值的int列表(当然取决于您想要做的...)

上面的代码基于您的示例输入做了几个假设:

  • 输入字符串将以0x
  • 开头
  • 输入字符串包含任何非转义值。换句话说,你总是有一系列0xnn字符串,其中 nothing 其他!