2014-12-03 3 views
0

Я сделал игру, и я бы хотел сохранить рекорд. Поэтому мне нужно место, чтобы сделать это. Я решил поместить его в каталог C:\All Programs. Моя проблема в том, что это имя каталога не одинаково на каждом компьютере. Например, у меня это C:/Program Files (x86).Найти путь C: Programs (не путь к скриптам)

Так что мой вопрос: Есть ли способ узнать этот путь на любом компьютере?

ПРОБЛЕМА РЕШИТЬ:
os.getenv ('PROGRAMFILES')

+0

Не похоже, что вы провели много исследований. Я предлагаю искать «Относительные пути Python» –

+0

Я ничего не нашел - только ppl, которые хотят узнать их файл сценариев. Но я хочу получить файл нормальных программ, например C:/Program Files/ –

+0

http://stackoverflow.com/questions/918154/relative-paths-in-python Первый результат в этом точном поиске, кажется очень актуальным для меня. –

ответ

0

Вы можете использовать os.getenv или os.environ:

>>> import os 
>>>> os.getenv('PROGRAMFILES') 
'C:\\Program Files' 
>>> os.environ['PROGRAMFILES'] 
'C:\\Program Files' 
>>> 

Обратите внимание, что вы можете также указать возвращаемое значение по умолчанию при переменной окружения не установлено:

>>> os.getenv('BADVAR', 'default') 
'default' 
>>> os.environ.get('BADVAR', 'default') 
'default' 
>>> 
+0

os.getenv ('PROGRAMFILES') - это именно то, что я искал. Спасибо –

+0

С удовольствием помог! Пожалуйста, не забудьте принять ответ, нажав кнопку рядом с ним. Это позволяет людям понять, что эта проблема решена. – iCodez

2

I второй ответ @ iCodez для использования os.getenv, чтобы получить строку пути из переменной системной среды, но вместо этого вы можете использовать пути, определенные для APPDATA или LOCALAPPDATA.

Параметры разрешений Windows в каталоге Program Files могут помешать стандартной учетной записи пользователя записывать данные в каталог.

Я считаю, что пути APPDATA и LOCALAPPDATA были предназначены для такого использования. В моей системе APPDATA = C:\Users\myname\AppData\Roaming и LOCALAPPDATA = C:\Users\myname\AppData\Local. У моей учетной записи пользователя есть полное разрешение на чтение и запись для обоих каталогов.

+0

os.getenv ('PROGRAMFILES') был тем. Благодарю вас: D –

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