读取MIDI文件时十六进制为整数

时间:2017-04-20 01:10:39

标签: python python-3.x integer hex

这可能是一个简单的问题。我正在使用Python 3阅读二进制MIDI文件,而我在理解如何将十六进制值\x00\x00\x00\x06转换为整数时遇到问题,因为我不知道如何处理斜杠\。为了获得这个值,我使用

with open("/path/to/midi/file.mid", "rb") as f:
    header_chunk = f.read(4)
    length = f.read(4)

length最终会得到一个值为b"\x00\x00\x00\x06"的字节对象。可以使用struct.unpack("cccc", length)将此值解压缩到相应的数字中,但这会返回包含\(b'\x00', b'\x00', b'\x00', b'\x06')的十六进制数字的元组。有没有内置的方法可以将这些数字按原样(如length或以个别方式)整数转换为整数而无需手动处理\?谢谢你提前。

1 个答案:

答案 0 :(得分:1)

是的,确定:

>>> length
b'\x00\x00\x00\x06'
>>> list(length)
[0, 0, 0, 6]

注意,如果您访问bytes对象的各个元素,则会得到int作为回报:

>>> length[0]
0
>>> length[1]
0
>>> length[2]
0
>>> length[3]
6
>>>