Python. 从6字节字符串中打印MAC地址
我有一个6字节的字符串,它是一个MAC地址。请问我该如何把它打印成“人类”能读懂的格式呢?
谢谢
6 个回答
9
在Python 3.8及以上版本中,你可以直接使用bytes.hex
这个功能。
b'\x85n:\xfaGk'.hex(":") // -> '85:6e:3a:fa:47:6b'
12
其实不需要用到 struct
:
def prettify(mac_string):
return ':'.join('%02x' % ord(b) for b in mac_string)
不过,如果 mac_string
是一个 bytearray
(在 Python 3 中也可以叫 bytes
),这样比用字符串更合适,因为数据的性质决定了这一点,那么你也就不需要用到 ord
这个函数了。
下面是一个使用的例子:
>>> prettify(b'5e\x21\x00r3')
'35:65:21:00:72:33'
13
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能在使用某个特定的功能时,发现它没有按照预期工作。这种情况下,我们通常会去网上寻找答案,比如在StackOverflow这样的论坛上提问或查找相关信息。
在这些讨论中,大家会分享自己的经验和解决方案,帮助彼此理解问题的根源。有时候,问题的解决方案可能很简单,只需要调整一些设置或者更新软件版本。而有时候,可能需要更深入的分析,甚至需要查看代码的具体实现。
总之,编程过程中遇到问题是很正常的,关键是要学会如何寻找帮助和解决方案。通过不断地学习和实践,我们会逐渐变得更加熟练。
import struct
"%x:%x:%x:%x:%x:%x" % struct.unpack("BBBBBB",your_variable_with_mac)