使用pydub将MP3转WAV时触发FileNotFoundError找不到文件如何解决
错误原因
- 最核心的原因是Python实际运行时的工作目录和你预期的存放mp3文件的目录不匹配:从报错中的
ipython-input可以看出你使用的是IPython/Jupyter类环境,手动设置的工作目录经常不会自动同步到当前运行的内核,导致程序找不到目标文件。 - 文件名/扩展名匹配错误:Windows默认隐藏已知文件扩展名,你看到的
Interview-part2.mp3可能实际文件名是Interview-part2.mp3.mp3,或者存在大小写、空格、特殊字符拼写不一致的问题。 - 绝对路径拼接错误:手动拼接路径时如果目录末尾缺少分隔符,或者路径中存在未转义的反斜杠,会导致最终路径指向错误位置。
解决方案
- 首先确认Python实际运行的工作目录,运行以下代码输出当前工作路径:
import os print(os.getcwd())
如果输出路径不是你存放mp3文件的路径,直接用代码主动切换工作目录,比IDE手动设置更可靠:
# 替换为你存放mp3和脚本的文件夹的绝对路径 os.chdir(r"C:\Users\20200016\Desktop\你的目标文件夹")
- 检查文件名准确性:打开Windows资源管理器的「查看」选项卡,勾选「文件扩展名」,确认目标mp3文件的完整文件名和你代码中写的完全一致,没有多余的后缀、空格或拼写错误。
- 如果使用绝对路径,不要手动拼接,用
os.path.join自动处理路径分隔符,避免转义错误:
DIRECTORY = r"C:\Users\20200016\Desktop\你的目标文件夹" src = os.path.join(DIRECTORY, "Interview-part2.mp3")
- 排查验证:运行以下代码输出当前工作目录下的所有文件,确认你的mp3文件在列表中:
print(os.listdir(os.getcwd()))
如果文件在列表中但仍报错,再检查文件名是否存在肉眼难以识别的特殊字符(比如全角空格、隐形符号),直接复制资源管理器里的文件名到代码中即可。
内容的提问来源于stack exchange,提问作者Emil
相关产品推荐
相关产品推荐

