如何在Python中将字符串var转换为十六进制

时间:2015-08-13 09:24:05

标签: python python-3.x hex mac-address

我有一个字符串"aa2a.aaa2.aaaa"。我想将此作为字符串参数传递,但应使用一些十六进制转换方法将其转换为mac地址。如何将字符串转换为十六进制?

hex(mac)

上面的方法不会有帮助,因为它只会将字符串转换为十六进制值。

1 个答案:

答案 0 :(得分:2)

您不能在字符串上应用hex,因为它包含可以用点分割的点字符,并将它们转换为带有基数16的int,然后转换为十六进制:

>>> s="aa2a.aaa2.aaaa"
>>> '.'.join(map(lambda x:hex(int(x,16)),s.split('.')))
'0xaa2a.0xaaa2.0xaaaa'

或者,如果您确定所有文字都是有效的基数16,您只需执行以下操作:

>>> s="aa2a.aaa2.aaaa"
>>> '.'.join(map(lambda i:'0x{}'.format(i),s.split('.')))
'0xaa2a.0xaaa2.0xaaaa'

如果不是这样,第一个解决方案会引发一个ValueError,你可以用异常处理它。