UnicodeDecodeError:解析 Midi 文件时出现 Utf-8 解码错误
Posted
技术标签:
【中文标题】UnicodeDecodeError:解析 Midi 文件时出现 Utf-8 解码错误【英文标题】:UnicodeDecodeError: Utf-8 Decode Error while parsing Midi File 【发布时间】: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 中的错误。 【参考方案1】:这是 music21 6.1.0 中的回归,已在 6.3.0 中修复
我们发现的每个有问题的文件在曲目名称消息中都有一个版权符号,并且由 www.piano-midi.de 编写。
【讨论】:
以上是关于UnicodeDecodeError:解析 Midi 文件时出现 Utf-8 解码错误的主要内容,如果未能解决你的问题,请参考以下文章
python-使用pip安装第三方库报UnicodeDecodeError: 'utf8' codec can't decode byte 0xcb in position 7
python2 当中 遇到 UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode byte 0xe