Jupyter Notebook中MP3分割程序遇文件未找到错误求助
解决MP3分割代码的文件未找到错误
排查及修复步骤
1. 先确认文件真实存在
直接把你的文件路径复制到Windows文件资源管理器的地址栏,按回车:
- 检查用户名
reape是否拼写正确 - 确认文件名不是
english1.mp3.txt(系统可能隐藏了文件后缀,导致实际后缀是txt) - 确认文件没有被移动、删除或重命名
2. 检查Jupyter Notebook的工作目录
在Jupyter单元格里先运行这段代码,查看当前工作目录:
import os print(os.getcwd())
如果你的MP3文件不在这个目录下,必须保证绝对路径完全无误;或者可以把MP3文件放到当前工作目录,改用相对路径测试。
3. 排查pydub依赖的ffmpeg
pydub本身不处理音频编码,依赖ffmpeg工具。如果ffmpeg未安装或未配置到系统环境变量,也会抛出类似“文件未找到”的错误(实际是找不到ffmpeg):
- 下载ffmpeg并解压,将解压后的
bin目录添加到系统PATH环境变量 - 重启Jupyter Notebook后再运行代码
4. 代码优化:增加路径校验
修改代码,提前检查路径有效性,方便定位问题:
from pydub import AudioSegment import os def split_mp3_by_seconds(input_file, output_folder, segment_length=10): # 校验输入文件是否存在 if not os.path.exists(input_file): raise FileNotFoundError(f"输入文件不存在:{input_file}") # 确保输出文件夹存在,不存在则创建 os.makedirs(output_folder, exist_ok=True) audio = AudioSegment.from_file(input_file, format="mp3") total_length = len(audio) for i in range(0, total_length, segment_length * 1000): segment = audio[i:i + segment_length * 1000] output_path = os.path.join(output_folder, f"segment_{i // 1000}.mp3") segment.export(output_path, format="mp3") if __name__ == "__main__": input_file_path = r"C:\Users\reape\Desktop\english1\english1.mp3" output_folder_path = r"C:\Users\reape\Desktop\english1" split_mp3_by_seconds(input_file_path, output_folder_path)
如果文件确实不存在,这段代码会抛出明确的错误提示,避免和ffmpeg缺失的问题混淆。
内容的提问来源于stack exchange,提问作者Joseph Specht
相关产品推荐
相关产品推荐

