python中的长十六进制字符串到整数

时间:2013-06-26 09:43:58

标签: python type-conversion

我从模块接收一个表示long int

的字符串
>>> str = hex(5L)
>>> str
'0x5L'

我现在想要的是将字符串str转换回数字(整数)

int(str,16)因L而无效。

有没有办法在不剥离字符串中的最后一个L的情况下执行此操作?因为字符串也可能包含没有L?

的十六进制

2 个答案:

答案 0 :(得分:5)

使用str.rstrip;它适用于两种情况:

>>> int('0x5L'.rstrip('L'),16)
5
>>> int('0x5'.rstrip('L'),16)
5

或者以这种方式生成字符串:

>>> s = '{:#x}'.format(5L)  # remove '#' if you don' want '0x'
>>> s
'0x5'
>>> int(s, 16)
5

答案 1 :(得分:2)

你甚至可以使用:

>>> str = hex(5L)
>>> long(str,16)
5L
>>> int(long(str,16))
5
>>>