如何将MAC号转换为MAC字符串?

Bru*_*uce 5 python

我想将MAC地址00163e2fbab7(存储为字符串)转换为其字符串表示形式00:16:3e:2f:ba:b7.最简单的方法是什么?

Jos*_*Lee 24

使用完全迂回的方法来利用现有的函数,一次将两个十六进制字符组合在一起:

>>> ':'.join(s.encode('hex') for s in '00163e2fbab7'.decode('hex'))
'00:16:3e:2f:ba:b7'
Run Code Online (Sandbox Code Playgroud)

针对Python 3进行了更新:

>>> ':'.join(format(s, '02x') for s in bytes.fromhex('00163e2fbab7'))
'00:16:3e:2f:ba:b7'
Run Code Online (Sandbox Code Playgroud)


unu*_*tbu 11

使用石斑鱼成语 zip(*[iter(s)]*n):

In [32]: addr = '00163e2fbab7'

In [33]: ':'.join(''.join(pair) for pair in zip(*[iter(addr)]*2))
Out[33]: '00:16:3e:2f:ba:b7'
Run Code Online (Sandbox Code Playgroud)

也可能,(事实上,更快一点):

In [36]: ':'.join(addr[i:i+2] for i in range(0,len(addr),2))
Out[36]: '00:16:3e:2f:ba:b7'
Run Code Online (Sandbox Code Playgroud)


Mic*_*ior 5

如果你有一个s你想要用冒号连接的字符串,这应该可以解决问题.

':'.join([s[i]+s[i+1] for i in range(0,12,2)])
Run Code Online (Sandbox Code Playgroud)