2014-12-20 3 views
3

У меня есть папка, которая является моей анимацией/игрой, а в папке находится файл .pyw и музыкальный файл .wav. У меня естьИмя файла Python для локальной папки?

import wave 
wave.open() 

и я не знаю, что положить в круглые скобки. Я знаю, что это должно быть имя файла, но кто-то может установить игру в неизвестном каталоге. Как получить доступ к локальной папке через имя файла?

Файлы находятся в одной папке, а музыка называется Music.wav.

+0

вы должны использовать _os_ функции? – GLHF

+0

использовать '__path__', чтобы определить путь к текущему модулю. Проблема BTW - это не кто-то, устанавливающий ее где-то в другом месте, а кто-то работает без выполнения cd, где находится программа. –

+0

Используйте относительный не абсолютный путь – quant

ответ

5

Обычным способом это делается с помощью путь текущего модуля, который автоматически доступен в предопределенной __file__ переменной, чтобы определить путь к файлу в подкаталоге:

import os 
import wave 

mydir = os.path.dirname(__file__) 
subdir = 'sounds' 
wavefilepath = os.path.join(mydir, subdir, 'Music.wav') 
wave.open(wavefilepath) 
+0

, если они находятся в одном каталоге, для чего вам нужен полный путь? –

+0

@Padraic: Потому что лучше не делать никаких предположений о текущем рабочем каталоге, который может отличаться от каталога, в котором находится текущий исполняемый модуль. – martineau

+0

Да, текущее имя каталога не имеет значения, как только подкаталог, содержащий файлы есть ли в нем самая большая проблема, если пользователь переместил подкаталог? –

Смежные вопросы