【发布时间】:2016-09-05 20:19:23
【问题描述】:
我想打开一个 MIDI 文件并分析每个字节。但我对处理字节和位非常不熟悉。如果这有什么区别,Midi 会以十六进制编写。
我想要做的是将每个字节放入一个列表中,然后创建一个 for 循环来检查每个字节。我该怎么做呢?
我已经走了这么远(不是很远):
# Open MIDI file
mFile = open("test.mid", 'rb')
# Checks if file is MIDI
hChunk = mFile.read(4)
if hChunk != b'MThd':
raise ValueError('Not a MIDI file')
print(mFile.read())
另外,如果有人有任何易于理解的 MIDI 格式解释链接,将不胜感激! :)
【问题讨论】:
-
contents = mFile.read()。contents现在是一个字节数组,您可以使用contents[n]n 作为偏移量来访问它。它会给你字节的值 -
@Jean-FrançoisFabre “字节的值”是什么意思?当我打印内容时,我得到 b'MThd\x00\x00\x00\x06\x00 (等),如果我使用 fx contents[0],我得到 77。77 代表什么?以及如何以 xFF 格式获取它?谢谢!
-
77 是“M”的 ASCII 值。如果您需要字节序列而不是数字,请改为切片。
标签: python list python-3.x byte midi