使用Python的Stagger中的“ NoTagError:未找到ID3v2标签”

时间:2019-06-15 15:41:08

标签: python-3.7 id3v2

每次尝试执行代码时都会遇到此错误。

这是我的一堆代码:

import os
from natsort import natsorted
import fnmatch
import stagger

def find_music(start, extension):
    for path, directories, files in os.walk(start):
        for file in fnmatch.filter(files, "*.{}".format(extension)):
            abs_path = os.path.abspath(path)
            yield os.path.join(abs_path, file)

for f in natsorted(find_music('music', 'emp3')):
    f = f.replace('\\', '/')
    tag = stagger.read_tag(f)   #This line reproducing Error
    print('Artist: {}, Album: {}, Track: {}, Song: {}'.format(tag.artist, tag.album, tag.track, tag.title))

观察到的输出

Traceback (most recent call last):

File "<ipython-input-8-185bd8f27d18>", line 3, in <module>
  tag = stagger.read_tag(f)

File "C:\Users\singh\Anaconda3\lib\site-packages\stagger\tags.py", line 81, in read_tag
  (cls, offset, length) = detect_tag(file)

File "C:\Users\singh\Anaconda3\lib\site-packages\stagger\tags.py", line 108, in detect_tag
  raise NoTagError("ID3v2 tag not found")

NoTagError: ID3v2 tag not found

预期产量

它应该在代码中显示指定目录中每首歌的歌手,专辑,曲目和歌曲。

我尝试过的事情

1)我试图将tag = stagger.read_tag(f)更改为tag = stagger.read_tag('{}'.format(f)),但错误仍然存​​在(我知道这只是写同一件事的另一种方式)。

2)我在google上搜索了错误,并使用stagger.default_tag()对其进行了修复。但是我不知道它的用法(我对使用交错法是陌生的)

任何帮助都会有很大帮助。谢谢

0 个答案:

没有答案