Python3 字符串與hex之間的相互轉換


 

在字符串轉換上,python2和python3是不同的,在查看一些python2的腳本時候,總是遇到字符串與hex之間之間的轉換出現問題,記錄一下解決方法。

 

1. 在Python2.7.x上,hex字符串和bytes之間的轉換是這樣的:

 

>>> a = 'aabbccddeeff'
>>> a_bytes = a.decode('hex')
>>> print(a_bytes)
b'\xaa\xbb\xcc\xdd\xee\xff'
>>> aa = a_bytes.encode('hex')
>>> print(aa)
aabbccddeeff
>>> 

 

 

2. 在python 3環境上,因為string和bytes的實現發生了重大的變化,這個轉換也不能再用encode/decode完成,而是利用bytes.fromhex()進行轉換。

 

2.1 在python3.5之前,這個轉換的其中一種方式是這樣的,利用bytes.fromhex()加單個字符轉換

 

 >>> a = 'aabbccddeeff'
>>> a_bytes = bytes.fromhex(a)
>>> print(a_bytes)
b'\xaa\xbb\xcc\xdd\xee\xff'
>>> aa = ''.join(['%02x' % b for b in a_bytes])
>>> print(aa)
aabbccddeeff
>>> 

 

 

2.2 到了python 3.5之后,直接用bytes.fromhex即可完成轉換

 

>>> a = 'aabbccddeeff'
>>> a_bytes = bytes.fromhex(a)
>>> print(a_bytes)
b'\xaa\xbb\xcc\xdd\xee\xff'
>>> aa = a_bytes.hex()
>>> print(aa)
aabbccddeeff
>>> 

 

 

參考鏈接:https://www.cnblogs.com/japhasiac/p/7739846.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM