每次尝试执行代码时都会遇到此错误。
这是我的一堆代码:
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()
对其进行了修复。但是我不知道它的用法(我对使用交错法是陌生的)
任何帮助都会有很大帮助。谢谢