方法中的参数太多错误,只需要一个参数

2024-04-28 16:16:28 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图给音乐加载器选择的音乐文件时发生错误:

代码:

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参数的情况下传递这个列表的元素?在


Tags: 代码importselfnumberlen音乐os错误
1条回答
网友
1楼 · 发布于 2024-04-28 16:16:28

快速看一下essentia docs for the MonoLoader method,它似乎有多个参数,filename不是第一个参数(除了文件名之外,所有其他参数都是可选的)。因此您需要指定您正在传递filename参数。例如:

loader = essentia.standard.MonoLoader(filename=file[i])

另外,如果您的示例代码并不能真正指示mp3文件的位置,那么一定要将完整的文件路径传递给MonoLoader,而不仅仅是文件名。在

最后,我假设您只是在您的问题中显示了您的while循环的一部分,并且您实际上正在某处递增i,这样它就不会永远运行了。在

相关问题 更多 >