2013-06-26 142 views
2

整我从一个模块接收一个字符串,它是一个长整型长十六进制字符串在Python

>>> str = hex(5L) 
>>> str 
'0x5L' 

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

表示

INT(STR,16)不会因为L.

的工作是有办法做到这一点没有最后L个剥离出来的字符串?因为字符串也可能包含一个没有L的十六进制数?

回答

2

你甚至可以只使用:

>>> str = hex(5L) 
>>> long(str,16) 
5L 
>>> int(long(str,16)) 
5 
>>> 
+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 
相关问题