1
我正在開發一款遊戲,並且有一個功能可在嘗試加載之前檢查有效的音頻文件。功能如下:os.path.join找不到指定目錄中的文件
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文件是還包含一個文件夾名爲數據的文件夾中。嵌套在這是幾個文件夾,其中之一是「聲音」。該laser.wav文件是該文件夾中:
功能因錯誤而失敗:
Cannot load sound: data\sounds/laser.wav
爲什麼蟒蛇添加\數據之後,它應該是一個/? 當我直接加載文件,它們的加載細,比如這個:
music = pygame.mixer.music.load("data/music/Zone_66_Theme.ogg")
更具體地講,爲什麼找不到文件?
''\''是默認的Windows路徑分隔符;你可以在Windows路徑中安全地混合''''和'/'。 –
O.K.這仍然無法解釋爲什麼當它顯然存在時找不到文件。 –
這就是爲什麼這是一個評論,而不是一個答案。 :-)可能是因爲pygame在這方面不夠靈活。 –