【发布时间】:2020-11-14 07:18:04
【问题描述】:
我尝试使用 music21 解析一些音乐文件,但代码生成 utf-8 错误:
'utf-8' codec can't decode byte 0xe9 in position 3: invalid continuation byte
这是我的代码:
notes = []
for file in glob.glob("midi_songs/*.mid"):
print("parsing %s"%file)
midi = converter.parse(file)
elements_to_parse = midi.flat.notes
for ele in elements_to_parse:
#Note: Store Pitch
if isinstance(ele, note.Note):
notes.append(str(ele.pitch))
#Chorde: Split note and join
elif isinstance(ele, chord.Chord):
notes.append("+".join(str(n) for n in ele.normalOrder))
追溯
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-17-ca5986c7b6d6> in <module>
2 for file in glob.glob("midi_songs/*.mid"):
3 print("parsing %s"%file)
----> 4 midi = converter.parse(file)
5
6 elements_to_parse = midi.flat.notes
【问题讨论】:
-
你能检查一下你的代码的缩进吗?
-
尝试将您的编码更改为 ISO-8859-1 之类的编码,因为它支持大多数符号和字符
-
看起来像 music21 中的错误。
标签: python jupyter-notebook midi audio-player music21