(我在编码方面绝对是初学者,这是我的第一个项目。)
我试图在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>
正如我所说,我是一个绝对的初学者,所以我不太明白大多数这意味着什么,虽然它似乎意味着目录(或目录中的文件) ?)我选择的并不存在,这是非常重要的。任何人都可以帮我解决这个问题吗?
答案 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()
直接目录列表,这样您就不必亲自进行手动检查。