当我试图给音乐加载器选择的音乐文件时发生错误:
代码:
import essentia
import essentia.standard
import os
file = os.listdir()
i = 0
number = len(file)
print("Number:", number)
while i<number:
if file[i].endswith(".mp3"):
print(file[i])
filename = file[i]
loader = essentia.standard.MonoLoader(file[i]) #<--ERROR
audio = loader()
#...
错误:
^{pr2}$我搜索发现,不仅传递了文件名,而且传递了“self-argument(list object named file)”。我做对了吗?现在的问题是:我如何在没有self参数的情况下传递这个列表的元素?在
快速看一下essentia docs for the MonoLoader method,它似乎有多个参数,
filename
不是第一个参数(除了文件名之外,所有其他参数都是可选的)。因此您需要指定您正在传递filename
参数。例如:另外,如果您的示例代码并不能真正指示mp3文件的位置,那么一定要将完整的文件路径传递给
MonoLoader
,而不仅仅是文件名。在最后,我假设您只是在您的问题中显示了您的
while
循环的一部分,并且您实际上正在某处递增i
,这样它就不会永远运行了。在相关问题 更多 >
编程相关推荐