2016-07-23 15 views
2

Я пишу скрипт в Python 2.7.% USERPROFILE% env переменная для python

Он должен быть в состоянии уйти от любого текущего профиля пользователей в Windows.

Это переменная и функция, которую я в настоящее время:

import os 
desired_paths = os.path.expanduser('HOME'\"My Documents") 

У меня есть сомнения, что это expanduser будет работать, хотя. Я пробовал искать переменные Windows Env в Python, чтобы надеяться найти список и узнать, что его преобразовать. Либо такой инструмент не существует, либо я просто не использую правильные условия поиска, так как я все еще довольно новый и обучающийся.

+0

Вы можете получить доступ к переменным окружения через отображение ['os.environ'] (https://docs.python.org/2/library/os.html#os.environ):' import os; print (os.environ ['USERPROFILE']) ' – jedwards

+1

Обратите внимание, что точка соединения« Мои документы »в профиле пользователя не обязательно будет существовать. Например, если установлена ​​неанглийская версия Windows или папка документов пользователя перемещена или перенаправлена. (Возможно, все в порядке, если это только для внутреннего использования.) –

ответ

2

Пробег: os.path.expanduser, использование файла: ~ выглядит более надежным, чем с помощью использования 'HOME'.

6

Вы можете получить доступ к переменным окружения через os.environ mapping:

import os; 
print(os.environ['USERPROFILE']) 

Это будет работать в Windows. Для другой ОС вам понадобится соответствующая переменная среды.

Кроме того, способ конкатенации строк в Python есть с + знаками, так что:

os.path.expanduser('HOME'\"My Documents") 
        ^^^^^^^^^^^^^^^^^^^^^ 

следует, вероятно, что-то еще. Но для конкатенации пути вы должны быть более осторожными, и, вероятно, хотите использовать что-то вроде:

os.sep.join(<your path parts>) 
# or 
os.path.join(<your path parts>) 

(Существует небольшое различие между этими двумя)

Если вы хотите каталог Мои Документы текущий пользователь, вы можете попробовать что-то вроде:

docs = os.path.join(os.environ['USERPROFILE'], "My Documents") 

В качестве альтернативы, используя expanduser:

docs = os.path.expanduser(os.sep.join(["~","My Documents"])) 

Наконец, чтобы увидеть, что переменные окружения установлены, вы можете сделать что-то вроде:

print(os.environ.keys()) 

(В отношении к поиску список того, что вары окружающей среды установлены)