在python中,如果我想将像'\ x1f'这样的字符串转换为十六进制数字,我该怎么办?我知道这是一个老问题,我已经搜索并尝试了很多方法,但所有这些方法都被证明失败了,这里有两个:
eval():此函数发布错误:'解析时出现意外的EOF',似乎无法识别'\ x1f'等字符。
'\ x1f'.decode('hex'):此函数发布错误:'奇数字符串',我不知道如何处理它。
我想我已经尝试过所有可以做的事情,有人可以帮我一把吗?
答案 0 :(得分:0)
\ x可能是分隔符,因此您可以使用
以十六进制编码a='\\x1f'
a.encode('hex')
答案 1 :(得分:0)
假设你已经有一个包含十六进制字符的字符串,如 -
hex_string = '\xf7\x14\xf7\xf9B\xab\x18J\xb6\xb6$\xb9-\x9e\xfd\xecg\xef\x9e\xf8\xc4'
在我的情况下,单个'\'的hex_string
无效,所以我使用了'\\'。
您只需要将十六进制字符拆分并单独转换为十进制 -
hex_chars = hex_string.split('\\x') # \\ are used otherwise it'll give error
pixels = []
for char in hex_chars:
if char != '':
match = re.match('^([\dAaBbCcDdEeFf]+).*', char)
pixels.append(int(match.groups()[0],16))
print(pixels)
=> [247, 20, 247, 3995, 171, 24, 182, 182, 185, 158, 253, 236, 239, 158, 248, 196]