python比较某些部分数据中的每个2字节

时间:2011-05-28 07:22:27

标签: python comparison byte

在python中,假设我运行时有数据......

search = target.readframes(2205)

每个帧由2个字节组成。我想比较每个2字节值并提取范围内最高的2个值。

例如,如果数据看起来像这样......

0000|0001|0002|0008|0007|000F|000D|000A|00FB|00FC|00FA|00F9|00F8|00D7|00C3|0000

然后结果会提取000F00FC

有人可以帮助我实现这一目标。任何答案或有用的建议都会很棒。

2 个答案:

答案 0 :(得分:1)

首先,如果处理二进制数据,则应仅使用bytes个对象。它们需要Python 2.6 +。

实施例

data = b"\x42\x43\x44\x45"
print(data[0:2], data[2:4])

是的,你可以使用普通的比较操作和字节。

我不确定readframes是否返回了这种对象,但如果设计不是字节,则应将其转换为字节。您可以使用data = bytes(obj)

不要使用字符串处理二进制数据

答案 1 :(得分:0)

我理解您处理音频数据(假设targetwave.Wave_read个对象),并希望找到每个频道的最大值。

import audioop

channel_l= audioop.tomono(search, 2, 1.0, 0.0)
channel_r= audioop.tomono(search, 2, 0.0, 1.0)
max_l= audioop.max(channel_l, 2)
max_r= audioop.max(channel_r, 2)

如果是,您应该更明确地提出问题;如果没有,请随意投票,因为没有用,人们:)