Python比较字节

2024-03-29 05:50:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过TCP获取数据并尝试将其与已知值(0xAD)进行比较:

b, addr = sock.recvfrom(1)
h = "".join(hex(ord(i)) for i in b)
print h
if h == str(0xad):
    print "Work"
    data = bytearray()
    data.append(observer.OBSERVER_VALIDATION_BYTE)
    sock.sendto(data, 0, addr)

我试着用上面显示的字符串来比较它们,试着用两种方式用字节来比较它们:

b[0] == 0xAD 

或者

b2 = bytearray()
b2.append(0xAD)
b2[0] == b[0]

所有的比较都失败了,尽管print h给了我0xad

更新

我定义了一组字节,如BYTE = 0xAD 我需要通过tcp发送它们并比较读取结果。 如果我像字符串(BYTE = '0xAD')那样定义它们,它提供了比较的能力,但是我不能将它们放在bytearray中发送,因为 bytearr.append(BYTE)合理地返回一个错误。所以我不能把它们重新定义为字符串。那么,如何比较从sock.recvfrom获得的bytes和以我的方式声明的值。


Tags: 字符串data字节定义方式byteb2tcp