Как читать переменную окружения 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'
Другие вопросы по тегам