使用subprocess.call()调用ffmpeg转MP3为WAV时遇FileNotFoundError
解决Windows下Python调用ffmpeg出现FileNotFoundError的问题
这个错误的核心原因是Python的subprocess模块无法定位到ffmpeg可执行文件,即便你在命令提示符里能正常运行ffmpeg,也可能是环境变量同步问题或路径解析错误导致的,以下是几种可行的解决方法:
1. 重启Python运行环境
安装ffmpeg后,Windows系统的环境变量更新不会自动同步给已经打开的IDE、终端等程序。重启你用来运行代码的工具(比如VS Code、PyCharm或者cmd终端),让新的环境变量生效,之后再执行代码即可。
2. 修复路径转义问题
Windows路径中的反斜杠\在Python字符串里是转义字符,会导致路径解析错误。将路径改为原始字符串(在字符串前加r)即可避免这个问题:
import subprocess # 使用原始字符串处理Windows路径,避免转义冲突 subprocess.call(['ffmpeg', '-i', r'C:\Users\Ashlar Global\Desktop\Project\Firefly_Replica\audioFiles\JROppenheimer.mp3', 'converted_to_wav_file.wav'])
3. 直接指定ffmpeg的完整路径
如果环境变量同步依然有问题,直接写入ffmpeg.exe的完整路径来调用,比如假设ffmpeg安装在C:\ffmpeg\bin目录下:
import subprocess # 直接指定ffmpeg的绝对路径 subprocess.call([r'C:\ffmpeg\bin\ffmpeg.exe', '-i', r'C:\Users\Ashlar Global\Desktop\Project\Firefly_Replica\audioFiles\JROppenheimer.mp3', 'converted_to_wav_file.wav'])
4. 手动给Python添加环境变量
可以在代码里手动将ffmpeg的bin目录添加到Python的环境变量中,确保subprocess能找到它:
import os import subprocess # 手动添加ffmpeg路径到系统环境变量 os.environ['PATH'] += r';C:\ffmpeg\bin' subprocess.call(['ffmpeg', '-i', r'C:\Users\Ashlar Global\Desktop\Project\Firefly_Replica\audioFiles\JROppenheimer.mp3', 'converted_to_wav_file.wav'])
内容的提问来源于stack exchange,提问作者abdz_128
相关产品推荐
相关产品推荐

