我正在编写一个有用的脚本,用于根据使用audio_metadata库的歌曲标签重命名 mp3 文件。我已经尝试过os.rename并使用os.system('ren "FILENAME" "NEWNAME"').我的代码:import osimport audio_metadatafor x in range(len(songs)): song = songs[x] metadata = audio_metadata.load('%s' % song) titlel = metadata['tags'].title artistl = metadata['tags'].artist title = titlel[0].strip() artist = artistl[0].strip() newname = '%s - %s.mp3' % (title, artist) print("[*] %s => %s" % (song, newname)) os.rename(song, newname)我预计:your love.mp3 => Your Love-The Outfield.mp3但我明白了:PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'your love.mp3' -> "Your Love-The Outfield.mp3"
2 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
audio_metadata调用时读取后是否可能未正确关闭文件对象metadata = audio_metadata.load('%s' % song)?我快速浏览了 audio_metadata 源,看起来您可以传递文件对象而不是文件路径字符串。
尝试以这种方式获取元数据:
with open('%s' % song, 'rb') as f:
metadata = audio_metadata.load(f)
繁星coding
TA贡献1797条经验 获得超4个赞
如果您正在运行 VS 调试器,我会遇到类似的问题,我的解决方案是确保没有其他 exe 实例在后台进程中秘密运行(如任务管理器中所示)。在使用 FMOD 时遇到了这个问题,不确定这是否有帮助?
添加回答
举报
0/150
提交
取消
