Python无法识别已存在文件问题求助(同目录/绝对路径均无效)
问题描述
- 运行Whisper转写MP3的Python代码时,能正常打印文件路径,但无法识别目标音频文件
- 已尝试的操作:使用仅文件名、带完整扩展名的路径、原始字符串写法,且已更新文件权限(权限信息如下)
C:\Users\erina>icacls E:\test\oid.mp3 E:\test\oid.mp3 DESKTOP-PK8T69J\erina:(F) BUILTIN\Administrators:(F) NT AUTHORITY\SYSTEM:(F) NT AUTHORITY\Authenticated Users:(M) BUILTIN\Users:(RX) BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\Authenticated Users:(I)(M) BUILTIN\Users:(I)(RX) Successfully processed 1 files; Failed processing 0 files
- 环境:Python 3.10,.py脚本与.mp3文件处于同一目录
排查与解决步骤
1. 确认音频文件本身的有效性
- 用本地音频播放器打开
oid.mp3,检查是否能正常播放,排除文件损坏问题 - 若文件无法播放,用ffmpeg重新编码修复:
之后用修复后的ffmpeg -i oid.mp3 -acodec copy oid_fixed.mp3oid_fixed.mp3重新测试代码 - 查看音频文件编码信息,确认Whisper支持该格式:
检查输出中的ffmpeg -i oid.mp3Audio字段,确认编码为MP3兼容格式
2. 修正文件路径处理逻辑
因为脚本与音频文件同目录,推荐用os模块动态拼接绝对路径,避免路径转义或工作目录问题:
import os import whisper # 获取脚本所在的绝对目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接音频文件路径 file_path = os.path.join(script_dir, "oid.mp3") print(file_path) model = whisper.load_model("base") result = model.transcribe(file_path) print(result["text"])
同时可以添加代码确认当前工作目录:
import os print(os.getcwd())
若输出不是E:\test,则需要切换到该目录后再运行脚本
3. 检查依赖完整性
- 确认ffmpeg已安装并添加到系统PATH:运行
ffmpeg -version,若提示命令不存在,需下载ffmpeg并将其可执行文件所在目录添加到系统环境变量PATH中 - 更新Whisper到最新版本:
pip install --upgrade openai-whisper
内容的提问来源于stack exchange,提问作者aXsd
相关产品推荐
相关产品推荐

