我有一個字符串中的十六進制數據。我需要能夠逐字節地解析字符串,但通過閱讀文檔,獲取字節數據的唯一方法是通過f.read(1)函數。從Python讀取字節字符串
如何解析一個十六進制字符的字符串,可以是一個列表,也可以是一個數組,或者是一個可以逐字節訪問的結構。
我有一個字符串中的十六進制數據。我需要能夠逐字節地解析字符串,但通過閱讀文檔,獲取字節數據的唯一方法是通過f.read(1)函數。從Python讀取字節字符串
如何解析一個十六進制字符的字符串,可以是一個列表,也可以是一個數組,或者是一個可以逐字節訪問的結構。
mystring = "a1234f"
data = list(mystring)
數據將是一個列表,其中每個元素是字符串中的一個字符。
a = 'somestring'
print a[0] # first byte
print ord(a[1]) # value of second byte
(x for x in a) # is a iterable generator
您可以像遍歷其他序列一樣遍歷字符串。
for c in 'Hello':
print c
這聽起來像你可能真的想(的Python 2.x的)是:
from binascii import unhexlify
mystring = "a1234f"
print map(ord,unhexlify(mystring))
[161,35,79]
該功能可將每對十六進制字符轉換爲整數表示。
在Python 3.x中,你可以這樣做:
>>> list(unhexlify(mystring))
[161, 35, 79]
奈何unhexlify
結果是一個字節串,你也可以直接訪問的元素:
>>> L = unhexlify(string) >>> L b'\xa1#O' >>> L[0] 161 >>> L[1] 35
線條之間的閱讀+1。 – 2010-12-01 03:10:22