os.path.join未在指定目录中查找文件

时间:2014-03-04 17:21:38

标签: python python-3.x pygame

我正在开发游戏,并且在尝试加载之前有一个检查有效音频文件的功能。该函数如下所示:

def load_sound(name):
    class NoneSound:
        def play(self): pass
    if not pygame.mixer or not pygame.mixer.get_init():
        return NoneSound()
    fullname = os.path.join('data', name)
    try:
        sound = pygame.mixer.Sound(fullname)
    except pygame.error:
        print('Cannot load sound:', fullname)
        raise SystemExit
    return sound

传递给此函数的对象只是:

fire = load_sound("sounds/laser.wav")

py文件位于一个文件夹中,该文件夹还包含一个名为data的文件夹。嵌套在几个文件夹中,其中一个是“声音”。 laser.wav文件位于该文件夹中:

Project folder nesting

该函数失败并显示错误:

Cannot load sound: data\sounds/laser.wav

为什么python在数据之后添加\应该是/? 当我直接加载文件时,它们加载正常,例如:

music = pygame.mixer.music.load("data/music/Zone_66_Theme.ogg")

更具体地说,为什么找不到文件?

1 个答案:

答案 0 :(得分:0)

事实证明代码是好的,这是问题的WAV文件。我将laser.wav转换为OGG文件,现在文件加载正常。