当python文件与声音文件位于不同的目录时,如何播放声音?

时间:2017-10-30 13:35:11

标签: python audio

所以我正在制作一个基于文本的游戏,完成之后,我想将最终产品编译成.exe格式,这样分享起来相当容易(我计划使用cx_freeze) 现在,我想为游戏添加一些背景音乐,下面的代码工作得很好 IF和ONLY IF python文件在桌面上,所以“sound.wav”我正在寻找在后台执行sound.wav的方法是否与python文件在同一目录或不同目录上,谢谢

import winsound
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)

2 个答案:

答案 0 :(得分:0)

使用os包生成音乐文件的绝对路径,以确保它始终正常。

例如,如果您的项目结构是

root
    src
        your_python_file.py
    assets
        sound.wav

所以你可以通过

生成sound.wav的绝对路径
import os
# __file__ means the path of the current python script
root_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
bg_path = os.path.join(root_dir, "assets", "sound.wav")

答案 1 :(得分:0)

假设您有一个名为foo的子文件夹和一个名为subfoo的第二个子文件夹

如果您想进入foo子文件夹,请使用foo/sound.wav,如果您想进入第二个子文件夹subfoo请使用foo/subfoo/sound.wav

如果您想上字典,可以使用./。例如,如果您的声音位于foo并且您在subfoo中编写脚本,则可以使用./sound.wav访问它,以便逐个使用./再次使用文件。

否则,您可以使用从C:开始的“绝对”文件路径或您要访问的驱动器。例如,如果您的文件文件名位于Desktop中,则可以使用:

C:/users/username/Desktop/foo/subfoo/sound.wav