我正在尝试将midi文件转换为csv,进行更改,然后再更改回midi。我想使用py_midicsv模块在python中完成所有操作。
但是,当我尝试遵循https://github.com/timwedde/py_midicsv
上的文档时,我遇到了错误#Convert back to csv
import py_midicsv
csv_string = py_midicsv.midi_to_csv("example.mid")
midi_object = py_midicsv.csv_to_midi(csv_string)
上面的代码直接来自文档,但是我遇到了错误:
ValueError Traceback (most recent call last)
<ipython-input-17-2cb6d586ec9e> in <module>
1 #Convert back to csv
2 import py_midicsv
----> 3 midi_object = py_midicsv.csv_to_midi(csv_string)
~/.local/lib/python3.6/site-packages/py_midicsv/csvmidi.py in parse(file)
44 pattern.append(track)
45 else:
---> 46 event = csv_to_midi_map[identifier](tr, time, identifier, line[3:])
47 track.append(event)
48 pattern.make_ticks_rel()
~/.local/lib/python3.6/site-packages/py_midicsv/csv_converters.py in to_AfterTouchEvent(track, time, identifier, line)
24
25 def to_AfterTouchEvent(track, time, identifier, line):
---> 26 cannel, value = map(int, line)
27 return AfterTouchEvent(tick=time, channel=channel, value=value)
28
ValueError: too many values to unpack (expected 2)
此错误是什么意思,我该如何解决?
答案 0 :(得分:1)
cannel, value = map(int, line)
问题在于此行。
您正在尝试将此map
对象解压缩为2个对象,但是它包含2个以上的对象,因此python不知道如何处理其余的值。
您将需要了解此map
对象包含的内容以及需要从中获取哪些数据。尝试打印它,看看它包含什么数据。