为了账号安全,请及时绑定邮箱和手机立即绑定

os.rename 说无法访问该文件,因为它正在被另一个进程使用

os.rename 说无法访问该文件,因为它正在被另一个进程使用

三国纷争 2021-12-21 11:08:11
我正在编写一个有用的脚本,用于根据使用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)


查看完整回答
反对 回复 2021-12-21
?
繁星coding

TA贡献1797条经验 获得超4个赞

如果您正在运行 VS 调试器,我会遇到类似的问题,我的解决方案是确保没有其他 exe 实例在后台进程中秘密运行(如任务管理器中所示)。在使用 FMOD 时遇到了这个问题,不确定这是否有帮助?


查看完整回答
反对 回复 2021-12-21
  • 2 回答
  • 0 关注
  • 869 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号