如何解析像\ x00,\ x95x95这样的值?

时间:2016-06-08 13:40:36

标签: python

我有String就像: \x00\x00\x01\x90\x27等等。

如何将此值解析为简单的long值?

比如,\x00的长值是多少? 000

2 个答案:

答案 0 :(得分:0)

我假设你的数据是字符......

所以使用python 3

 a=b'\x00\x00\x01\x90'
 b=b.decode('utf-8')

如果你的二进制数据有一些'讨厌的'即坏字符,这将失败 - 但添加一个选项,如errors ='ignore'或errors ='replace'将帮助你解决这些问题。

答案 1 :(得分:0)

你的问题不是很清楚所以我在这里做了一些假设。如果您需要固定长度转换,则可以使用标准structs模块。

例如:

In [11]: unpack('>i', '\x00\x01\x90\x27')
Out[11]: (102439,)

如果你需要可变长度的字符串,那么像这样的东西将起作用(对于unsigned并观察endianness):

s = '\x00\x00\x01\x90\x27'
i = 0
for c in s:
    i <<= 8
    i |= ord(c)

print i