0

我编写了一个小脚本来将我所有的 .flac 文件从 dap 移动到艺术家子文件夹,以便可以轻松地从计算机访问它。我在 Ubuntu 上使用了带有诸如 eyed3 和 os 之类的库的 python3。它适用于近 30 首歌曲(2 位艺术家)。所以这里是代码:

    import os
    import eyed3

    os.chdir("/home/user/Music")
    cwd = os.getcwd()

    # print the current directory
    print("Current working directory is:", cwd)

    listOfFiles = os.listdir()
    artists = []

    # print(listOfFiles)

    try:
        for file in listOfFiles:
            aFile = eyed3.load(file)
            artist = aFile.tag.artist
            if artist not in a:
                artists.append(artist)
                os.mkdir(artist)
            os.rename(cwd + '/' + file, cwd + '/' + artist + '/' + file)
    except:
        print("not a file")

    print(artists)

它必须创建 2 个文件夹。但是,当我尝试在我的 Windows PC 上运行此脚本时,它会引发异常并打印“不是文件”。这是没有 try/except 的控制台输出:

Traceback (most recent call last):
  File "D:\GitHub\Song-Sorter\main.py", line 21, in <module>
    artist = aFile.tag.artist
AttributeError: 'NoneType' object has no attribute 'tag'

所以我尝试了这个(下一行artist = aFile.tag.artist):

print(type(artist))

它的输出是:

<class 'NoneType'>

问题是什么?想不通

4

1 回答 1

0

找到了解决方案。我在库的 mp3 部分测试了这个脚本,它运行良好。然后我尝试了 flac 部分,但它不起作用,因为 eyed3 仅适用于 mp3。所以我推荐使用 Mutagen 库

于 2019-10-15T10:01:36.750 回答