Как читать переменную окружения set в python
В UNIX из командной строки я делаю
setenv HOME <path to home>
Я передаю это в качестве аргумента в мой скрипт на Python
python hello.py HOME
и делать
sys.argv[1] = os.environ["HOME"]
все же это не читает путь.
Я новичок в Python, является os.environ
правильно для этого случая?
2 ответа
Если ваша цель - получить путь к домашнему каталогу в качестве аргумента, вы можете просто заставить своего пользователя отправить его, заставив оболочку оценить аргумент перед вызовом скрипта.
У меня есть простой скрипт, как -
import sys
print(sys.argv[1])
В Windows я называю это как -
set HOME=D:\
python script.py %HOME%
Я получаю вывод -
D:\
В Linux -
$ python hello.py $HOME
выход -
/home/random/
Если вы хотите получить его из переменной среды и хотите передать переменную среды для использования в качестве первого аргумента сценария, то вам следует изменить свой сценарий следующим образом:
sys.argv[1] = os.environ.get(sys.argv[1],sys.argv[1])
Это будет
Кажется, это немного зависит от вашей оболочки. Например, в Linux, используя bash 4.3-7ubuntu1.5:
$ export XXX="abc"
$ python
>>> import os
>>> os.environ["XXX"]
'abc'
>>> os.environ["HOME"]
'/home/alan'