从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