格式化十六进制字符串为MAC字符

时间:2013-03-17 01:57:34

标签: python

如何使用简洁的声明将十六进制字符串('003de70fc98a')格式化为MAC字符串('00:3d:e7:0f:c9:8a')?

3 个答案:

答案 0 :(得分:4)

您可以使用正则表达式:

>>> re.sub(r'(?<=..)(..)', r':\1', '003de70fc98a')
'00:3d:e7:0f:c9:8a'

答案 1 :(得分:3)

In [104]: hexstr = '003de70fc98a'

In [105]: ':'.join([hexstr[i:i+2] for i in range(0, len(hexstr), 2)])
Out[105]: '00:3d:e7:0f:c9:8a'

,或者

In [108]: ':'.join(map(''.join, zip(*[iter(hexstr)]*2)))
Out[108]: '00:3d:e7:0f:c9:8a'

答案 2 :(得分:1)

试试这个:

s = '003de70fc98a'
':'.join(s[i]+s[i+1] for i in range(0, len(s), 2))
=> '00:3d:e7:0f:c9:8a'