Python 通过目录循环在诱变剂中添加ID3标签
(就编码而言,我是一个绝对的初学者,这是我的第一个项目。) 我试图在Windows10上使用诱变剂来循环遍历一个目录,并为遇到的每个文件添加ID3标记跟踪号。不幸的是,诱变剂似乎很难识别这些文件。到目前为止,我的代码是这样的:Python 通过目录循环在诱变剂中添加ID3标签,python,mutagen,Python,Mutagen,(就编码而言,我是一个绝对的初学者,这是我的第一个项目。) 我试图在Windows10上使用诱变剂来循环遍历一个目录,并为遇到的每个文件添加ID3标记跟踪号。不幸的是,诱变剂似乎很难识别这些文件。到目前为止,我的代码是这样的: import os import mutagen import mutagen.id3 from mutagen.id3 import ID3 from mutagen.mp3 import MP3 from mutagen.easyid3 import EasyID3
import os
import mutagen
import mutagen.id3
from mutagen.id3 import ID3
from mutagen.mp3 import MP3
from mutagen.easyid3 import EasyID3
files = os.listdir(r'C:\Users\Kurt\Music\Music\Brad Paisley\python test')
count = 0
for file in files:
path = file
try:
tag = EasyID3(path)
except:
tag = mutagen.File(path, easy=True)
tag.add_tags()
tag['tracknumber'] = count + 1
tag.save(v2_version=3)
file.save()
count = count + 1
这基本上是我在谷歌上搜索到的各种其他东西拼凑而成的,但当我运行它时,它给了我一个巨大的错误,我将在这里发布前几行:
Traceback (most recent call last):
File "C:\Users\Kurt\AppData\Local\Programs\Python\Python36-32\lib\site-packages\mutagen\_util.py", line 235, in _openfile
fileobj = open(filename, "rb+" if writable else "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'americansaturdaynight 01- American Saturday Night - Copy.mp3'
正如我所说的,我是一个绝对的初学者,所以我并不真正理解这其中的大部分含义,尽管这似乎意味着我选择的目录(或目录中的文件?)不存在,但事实上确实如此。有人能帮我解决这个问题吗?您的问题在于路径-
os.listdir()
只列出文件/目录,而不列出它们的路径,因此,除非您碰巧从指定路径执行脚本,否则Python将无法找到该文件
您始终可以将主路径定义为:
source_dir = r"C:\Users\Kurt\Music\Music\Brad Paisley\python test"
for name in os.listdir(source_dir): # iterate over all files/directories in source_dir
if name[-4:].lower() != ".mp3": # ignore non-mp3 files
continue
path = os.path.join(source_dir, name) # build the whole file path
# you can also check with os.path.isfile(path) to make sure it's a file you're processing
# etc. (your mutagen update logic)
您可能还希望使用应用的扩展筛选器模式查找直接目录列表,这样您就不必自己手动检查。非常感谢!
source\u dir
修复了它,尽管我在运行它之前还发现了另外两个错误:'tracknumber'
需要是一个字符串,所以它是str(count+1)
,file.save()
部分没有定义,也没有必要,所以我删除了它。