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文件放在一个文件夹里,这个文件夹里还有一个叫做data的文件夹。在data文件夹里,有几个子文件夹,其中一个是“sounds”。激光.wav文件就在这个文件夹里:
但是这个函数出错了,错误信息是:
Cannot load sound: data\sounds/laser.wav
为什么Python在data后面加了一个\,而应该是/呢?当我直接加载文件时,它们能正常加载,比如这样:
music = pygame.mixer.music.load("data/music/Zone_66_Theme.ogg")
更具体地说,为什么找不到这个文件呢?
1 个回答
0
结果发现代码没问题,问题出在WAV文件上。我把laser.wav文件转换成了OGG格式,现在这个文件加载得很好。