You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python项目同目录音频文件触发FileNotFoundError问题求助

解决Python中pydub播放同目录音频文件的FileNotFoundError问题

问题重现

运行Python项目时尝试后台播放同目录下的Music.mp3,却触发FileNotFoundError: [WinError 2] The system cannot find the file specified,已尝试刷新VSCode、更换路径等操作仍未解决。相关代码:

from pydub import AudioSegment
from pydub.playback import play

def play_mp3(file_path):
    sound = AudioSegment.from_mp3(file_path)
    repeated_sound = sound * -1
    play(repeated_sound)

MusicThread = threading.Thread(target=play_mp3,args=("Music.mp3",),daemon=True)

MusicThread.start()

解决方案

  • 使用绝对路径定位音频文件
    VSCode默认运行目录可能不是脚本所在文件夹,导致相对路径失效。通过os模块获取脚本的绝对路径,再拼接音频文件路径,确保无论运行环境如何都能找到文件:
import os
import threading
from pydub import AudioSegment
from pydub.playback import play

def play_mp3(file_path):
    sound = AudioSegment.from_mp3(file_path)
    repeated_sound = sound * -1
    play(repeated_sound)

# 获取脚本所在文件夹的绝对路径
script_dir = os.path.dirname(os.path.abspath(__file__))
audio_path = os.path.join(script_dir, "Music.mp3")

MusicThread = threading.Thread(target=play_mp3, args=(audio_path,), daemon=True)
MusicThread.start()
  • 检查文件的实际状态

    1. 确认音频文件确实与脚本在同一文件夹,未误放入子目录或其他位置
    2. 核对文件名完全匹配:注意大小写(如实际是music.mp3而非Music.mp3)、扩展名是否正确(避免出现Music.mp3.txt这类被隐藏扩展名的情况)
    3. 避免文件名包含空格、中文或特殊字符,防止路径解析异常
  • 排查其他潜在问题

    1. 确保代码已导入threading模块(原代码片段未显示该导入,缺失会引发运行错误)
    2. 验证pydub依赖的ffmpeg已正确安装并配置到系统环境变量中(当前错误为文件找不到,但ffmpeg缺失会导致后续播放失败)

内容的提问来源于stack exchange,提问作者William Welburn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:57:12