2015-07-03 27 views
0

設置環境變量在UNIX,我做如何從命令行中讀取的蟒蛇

setenv HOME <path to home> 

我把它作爲參數傳遞給我的python腳本

python hello.py HOME 

,做

sys.argv[1] = os.environ["HOME"] 

它仍然沒有讀取路徑。

我是新來的蟒蛇,是os.environ正確的這種情況?

+0

你爲什麼要設置sys.argv中[1]作爲家居環境變量?你的完整要求是什麼? –

+0

我的腳本需要目錄路徑作爲參數。每個用戶的目錄路徑都不相同(取決於不同的PC)。每個用戶將環境變量HOME設置爲路徑。它就像所有用戶的常見環境變量一樣。 –

+0

我是python新手,仍然在學習它。我使用python的argparse模塊將參數和腳本一起傳遞。我需要的唯一參數是指向目錄的路徑,這對於每個用戶(如user1:/ home/user/文件夾,user2:/ home/user8976/folder2/folder)是不同的。想法是每個用戶將設置路徑變量HOME和腳本將利用它。所以我通過的第一個參數是HOME。因此做sys.argv [1] = os.environ [「HOME」]。基本上sys.argv [1]應該是個人用戶的路徑。 –

回答

1

如果你的目標是讓主目錄作爲參數的路徑,你可以讓你的用戶能夠通過前殼評估參數發送調用腳本。

我有這樣一個簡單的腳本 -

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]) 

+0

非常感謝!有效。 –

+0

請記住接受問題的答案(全部),點擊答案左邊的勾號即可變綠,這對社區有幫助。 –

+0

謝謝。我是新來的stackoverflow,不知道這一點。 –

0

看起來這取決於你的外殼。例如,在Linux下使用bash 4.3-7ubuntu1.5:

$ export XXX="abc" 
$ python 
>>> import os 
>>> os.environ["XXX"] 
'abc' 
>>> os.environ["HOME"] 
'/home/alan'