python將十六進(jìn)制值轉(zhuǎn)換為字符串的三種方法
Python 中提供了幾種將十六進(jìn)制值轉(zhuǎn)換為字符串的方法,下面將介紹其中的三種方法。
1. 使用 bytes.fromhex() 方法
bytes.fromhex()
方法可以將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)串,然后再將字節(jié)串轉(zhuǎn)換為字符串。例如:
hex_str = "48656c6c6f20576f726c64" byte_str = bytes.fromhex(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 輸出:Hello World
其中,bytes.fromhex()
方法將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)串,byte_str.decode("utf-8")
方法將字節(jié)串轉(zhuǎn)換為字符串。
需要注意的是,bytes.fromhex()
方法只能處理沒有空格的十六進(jìn)制字符串,如果輸入的十六進(jìn)制字符串包含空格,需要先將空格刪除,例如:
hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64" hex_str = hex_str.replace(" ", "") # 刪除空格 byte_str = bytes.fromhex(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 輸出:Hello World
2. 使用 binascii.unhexlify() 方法
binascii.unhexlify()
方法可以將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)串,然后再將字節(jié)串轉(zhuǎn)換為字符串。例如:
import binascii hex_str = "48656c6c6f20576f726c64" byte_str = binascii.unhexlify(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 輸出:Hello World
其中,binascii.unhexlify()
方法將十六進(jìn)制字符串轉(zhuǎn)換為字節(jié)串,byte_str.decode("utf-8")
方法將字節(jié)串轉(zhuǎn)換為字符串。
需要注意的是,binascii.unhexlify()
方法只能處理沒有空格的十六進(jìn)制字符串,如果輸入的十六進(jìn)制字符串包含空格,需要先將空格刪除,例如:
import binascii hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64" hex_str = hex_str.replace(" ", "") # 刪除空格 byte_str = binascii.unhexlify(hex_str) str_result = byte_str.decode("utf-8") print(str_result) # 輸出:Hello World
3. 使用 codecs.decode() 方法
codecs.decode()
方法可以將十六進(jìn)制字符串直接轉(zhuǎn)換為字符串。例如:
import codecs hex_str = "48656c6c6f20576f726c64" str_result = codecs.decode(hex_str, "hex").decode("utf-8") print(str_result) # 輸出:Hello World
其中,codecs.decode()
方法將十六進(jìn)制字符串直接轉(zhuǎn)換為字節(jié)串,byte_str.decode("utf-8")
方法將字節(jié)串轉(zhuǎn)換為字符串。
需要注意的是,codecs.decode()
方法只能處理沒有空格的十六進(jìn)制字符串,如果輸入的十六進(jìn)制字符串包含空格,需要先將空格刪除,例如:
import codecs hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64" hex_str = hex_str.replace(" ", "") # 刪除空格 str_result = codecs.decode(hex_str, "hex").decode("utf-8") print(str_result) # 輸出:Hello World
這三種方法都可以將十六進(jìn)制值轉(zhuǎn)換為字符串,選擇哪一種方法取決于你的使用場景和偏好。需要注意的是,如果十六進(jìn)制字符串不合法,這些方法都會拋出異常,需要對輸入的十六進(jìn)制字符串進(jìn)行合法性檢查。
附:Python -- 十六進(jìn)制與字符串的相互轉(zhuǎn)換
# 字符串與十六進(jìn)制的轉(zhuǎn)義 # coding utf-8 char = input("請輸入字符串") _char = char.encode().hex() print(char + " 的十六進(jìn)制序列是:" + _char) _char1 = bytes.fromhex(_char).decode() print(_char + " 十六進(jìn)制轉(zhuǎn)字符串是 :" + _char1)
總結(jié)
到此這篇關(guān)于python將十六進(jìn)制值轉(zhuǎn)換為字符串的三種方法的文章就介紹到這了,更多相關(guān)python十六進(jìn)制值轉(zhuǎn)字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?實(shí)現(xiàn)圖像特效中的油畫效果
這篇文章主要是為大家簡單介紹一下圖像添加油畫特效的基本原理以及代碼實(shí)現(xiàn),文中的示例代碼很詳細(xì),對我們學(xué)習(xí)或者工作有一點(diǎn)的價值,感興趣的小伙伴可以了解一下2021-12-12python讀取eml文件并用正則表達(dá)式匹配郵箱的代碼
今天接到一個需求有一個同事離職了,但是留下了非常多的郵件,我需要將他的郵件進(jìn)行分類,只要郵件中以@xxx.com結(jié)尾的存放在文件夾中,否則放在另一個文件夾中,這篇文章主要介紹了python讀取eml文件并用正則匹配郵箱,需要的朋友可以參考下2022-11-11Python實(shí)現(xiàn)PDF轉(zhuǎn)Word的方法詳解
由于PDF的文件大多都是只讀文件,有時候?yàn)榱藵M足可以編輯的需要通常可以將PDF文件直接轉(zhuǎn)換成Word文件進(jìn)行操作。本文為大家整理了一些實(shí)現(xiàn)方法,希望對大家有所幫助2023-02-02