python將十六進制值轉(zhuǎn)換為字符串的三種方法
Python 中提供了幾種將十六進制值轉(zhuǎn)換為字符串的方法,下面將介紹其中的三種方法。
1. 使用 bytes.fromhex() 方法
bytes.fromhex()
方法可以將十六進制字符串轉(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()
方法將十六進制字符串轉(zhuǎn)換為字節(jié)串,byte_str.decode("utf-8")
方法將字節(jié)串轉(zhuǎn)換為字符串。
需要注意的是,bytes.fromhex()
方法只能處理沒有空格的十六進制字符串,如果輸入的十六進制字符串包含空格,需要先將空格刪除,例如:
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()
方法可以將十六進制字符串轉(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()
方法將十六進制字符串轉(zhuǎn)換為字節(jié)串,byte_str.decode("utf-8")
方法將字節(jié)串轉(zhuǎn)換為字符串。
需要注意的是,binascii.unhexlify()
方法只能處理沒有空格的十六進制字符串,如果輸入的十六進制字符串包含空格,需要先將空格刪除,例如:
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()
方法可以將十六進制字符串直接轉(zhuǎn)換為字符串。例如:
import codecs hex_str = "48656c6c6f20576f726c64" str_result = codecs.decode(hex_str, "hex").decode("utf-8") print(str_result) # 輸出:Hello World
其中,codecs.decode()
方法將十六進制字符串直接轉(zhuǎn)換為字節(jié)串,byte_str.decode("utf-8")
方法將字節(jié)串轉(zhuǎn)換為字符串。
需要注意的是,codecs.decode()
方法只能處理沒有空格的十六進制字符串,如果輸入的十六進制字符串包含空格,需要先將空格刪除,例如:
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
這三種方法都可以將十六進制值轉(zhuǎn)換為字符串,選擇哪一種方法取決于你的使用場景和偏好。需要注意的是,如果十六進制字符串不合法,這些方法都會拋出異常,需要對輸入的十六進制字符串進行合法性檢查。
附:Python -- 十六進制與字符串的相互轉(zhuǎn)換
# 字符串與十六進制的轉(zhuǎn)義 # coding utf-8 char = input("請輸入字符串") _char = char.encode().hex() print(char + " 的十六進制序列是:" + _char) _char1 = bytes.fromhex(_char).decode() print(_char + " 十六進制轉(zhuǎn)字符串是 :" + _char1)
總結(jié)
到此這篇關于python將十六進制值轉(zhuǎn)換為字符串的三種方法的文章就介紹到這了,更多相關python十六進制值轉(zhuǎn)字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)PDF轉(zhuǎn)Word的方法詳解
由于PDF的文件大多都是只讀文件,有時候為了滿足可以編輯的需要通??梢詫DF文件直接轉(zhuǎn)換成Word文件進行操作。本文為大家整理了一些實現(xiàn)方法,希望對大家有所幫助2023-02-02