【问题标题】:Hex to integer when reading MIDI file读取 MIDI 文件时的十六进制到整数
【发布时间】:2017-09-16 10:33:07
【问题描述】:

这可能是一个简单的问题。我正在使用 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 或以单独的方式批量转换为整数,而无需手动处理\?提前致谢。

【问题讨论】:

    标签: python python-3.x integer hex


    【解决方案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
    >>>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      相关资源
      最近更新 更多