通过循环目录在Mutagen中添加ID3标签

时间:2018-05-15 21:11:34

标签: python mutagen

(我在编码方面绝对是初学者,这是我的第一个项目。)

我试图在Windows 10上使用Mutagen来遍历目录并为遇到的每个文件添加ID3标记轨道号。不幸的是,似乎Mutagen在识别所述文件时遇到了麻烦。这是我的代码到目前为止的样子:

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'

这基本上是用我搜索过的各种其他东西拼凑而成的,但是当我运行它时会给我一个巨大的错误,我将在这里发布前几行:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>mesh</display-name>

<filter>
  <filter-name>sitemesh</filter-name>
  <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>

<filter-mapping>
   <filter-name>sitemesh</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
  <welcome-file>index.html</welcome-file>
</welcome-file-list>

</web-app>

正如我所说,我是一个绝对的初学者,所以我不太明白大多数这意味着什么,虽然它似乎意味着目录(或目录中的文件) ?)我选择的并不存在,这是非常重要的。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

你的问题是路径 - 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)

您可能还希望使用应用的扩展名过滤器模式查看glob.glob()直接目录列表,这样您就不必亲自进行手动检查。