【Python】bytes和hex字符串之间的相互转换。反复在⼏个环境上折腾码流的拼装解析和可读化打印,总是遇到hex字符串和bytes之间的转换,记录在这⾥吧。
1. 在Python
2.7.x上(更⽼的环境真⼼折腾不起),hex字符串和bytes之间的转换是这样的:
1 >>> a = 'aabbccddeeff'
2 >>> a_bytes = a.decode('hex')
3 >>> print(a_bytes)
4 b'\xaa\xbb\xcc\xdd\xee\xff'
5 >>> aa = de('hex')
6 >>> print(aa)
hex字符串是什么7 aabbccddeeff
8 >>>
2. 在python 3环境上,因为string和bytes的实现发⽣了重⼤的变化,这个转换也不能再⽤encode/decode完成了。
2.1 在python
3.5之前,这个转换的其中⼀种⽅式是这样的:
1 >>> a = 'aabbccddeeff'
2 >>> a_bytes = bytes.fromhex(a)
3 >>> print(a_bytes)
4 b'\xaa\xbb\xcc\xdd\xee\xff'
5 >>> aa = ''.join(['%02x' % b for b in a_bytes])
6 >>> print(aa)
7 aabbccddeeff
8 >>>
2.2 到了python
3.5之后,就可以像下⾯这么⼲了:
1 >>> a = 'aabbccddeeff'
2 >>> a_bytes = bytes.fromhex(a)
3 >>> print(a_bytes)
4 b'\xaa\xbb\xcc\xdd\xee\xff'
5 >>> aa = a_bytes.hex()
6 >>> print(aa)
7 aabbccddeeff
8 >>>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。