2011-06-10 38 views
1

我想用最多8個參數運行一個腳本。例如:如何在Python中存儲來自命令行的用戶輸入?

pythonscript.py你好你好做argument5 argument6 argument7 argument8

我想5-8參數存儲在陣列中,但是,如果沒有輸入參數5-8,我希望有一個默認值分配給一個變量。我不在乎它是否是元組,輸入中的數據不會改變。

我有這個到目前爲止,但不能得到它的工作。我錯過了什麼?

import sys 

try: 
    values = (sys.argv[5],sys.argv[6],sys.argv[7],sys.argv[8]) 
except: 
    values ='127.0.0.1' 

回答

0

我不太看看有什麼錯在這裏:

>>> import sys 
>>> 
>>> try: 
...  values = (sys.argv[5],sys.argv[6],sys.argv[7],sys.argv[8]) 
... except: 
...  values ='127.0.0.1' 
... 
>>> values 
'127.0.0.1' 

請注意,這是從Python shell中運行,因此sys.argv中是不是你得到,如果從腳本運行。

您可以發佈錯誤消息,或者您獲得的數據以及您期望的數據嗎?

+0

Bah!我是個假人。我試圖在一個函數中處理一個變量,但是它是按順序執行的。因爲我錯誤地沒有正確退出腳本,所以我無法打印數組的內容以確認它正在填充,所以我認爲我的問題是數組填充。 – 2011-06-10 19:26:58

1

這裏的另一種方式,你可以做到這一點並不需要你明確說明的sys.argv的各種元素:

import sys 

if len(sys.argv) > 5: 
    values = sys.argv[5:] 
else: 
    values = '127.0.0.1' 

這需要Python的切片語法的優勢。

相關問題