Python和eyed3的错误

2024-05-18 22:28:38 发布

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

import os
import eyed3


def files(path):
    for file in os.listdir(path):
        if os.path.isfile(os.path.join(path, file)):
            yield file


def title_alteration(music_artist_string):
    music_artist_string = music_artist_string.replace(';', ' feat. ', 1)
    semicolon_count = music_artist_string.count(';')
    music_artist_string = music_artist_string.replace(';', ', ', semicolon_count-1)
    music_artist_string = music_artist_string.replace(';', ' & ')
    return music_artist_string


def main():
    audio_files = eyed3.load(files('D:\\iTunes Music\\iTunes\\iTunes Media\\Music'))
    title_alteration(audio_files.tag.artist)


if __name__ == '__main__':
    main()

我可以得到一些调试的帮助吗?我从上一篇文章中得到了一些帮助,我把它归结为三个不同的函数。现在我只需要知道,当我试图在我的pc上的这个目录下运行它时,为什么会出错

我得到了这些错误(TLDR;它不像第20行[音频文件行]:

Traceback (most recent call last):
  File "D:/Pycharm Projects/Music Alterations v2.py", line 25, in <module>
    main()
  File "D:/Pycharm Projects/Music Alterations v2.py", line 20, in main
    audio_files = eyed3.load(files('D:\\iTunes Music\\iTunes\\iTunes Media\\Music'))
  File "C:\Users\cLappy\AppData\Local\Programs\Python\Python38\lib\site-packages\eyed3\core.py", line 74, in load
    path = pathlib.Path(path)
  File "C:\Users\cLappy\AppData\Local\Programs\Python\Python38\lib\pathlib.py", line 1038, in __new__
    self = cls._from_parts(args, init=False)
  File "C:\Users\cLappy\AppData\Local\Programs\Python\Python38\lib\pathlib.py", line 679, in _from_parts
    drv, root, parts = self._parse_args(args)
  File "C:\Users\cLappy\AppData\Local\Programs\Python\Python38\lib\pathlib.py", line 663, in _parse_args
    a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not generator

Process finished with exit code 1

Tags: pathinpystringartistosmainline
1条回答
网友
1楼 · 发布于 2024-05-18 22:28:38

您的files函数是一个生成器,可以像迭代器一样使用。eyed3.load函数不需要生成器或迭代器。它需要一个路径名或类似的名称。在需要路径名的地方传递生成器不会神奇地导致对生成器将生成的所有值进行迭代。只需列出所有感兴趣的路径名,然后在该列表上迭代,为每个路径名调用eyed3.load,效果会更好

相关问题 更多 >

    热门问题