从Python String中读取字节

时间:2010-11-26 21:58:25

标签: python string hex

我在字符串中有十六进制数据。我需要能够逐字节地解析字符串,但是通过读取文档,按字节顺序获取数据的唯一方法是通过f.read(1)函数。

如何将一串十六进制字符解析为列表,或解析为数组,或者我可以逐字节访问的结构。

4 个答案:

答案 0 :(得分:7)

这听起来像你真正想要的(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 :(得分:3)

a = 'somestring'
print a[0]        # first byte
print ord(a[1])   # value of second byte

(x for x in a)    # is a iterable generator

答案 2 :(得分:3)

您可以像处理任何其他序列一样迭代字符串。

for c in 'Hello':
  print c

答案 3 :(得分:0)

mystring = "a1234f"
data = list(mystring)

数据将是一个列表,其中每个元素都是字符串中的字符。