2013-08-16 73 views
1

我有一個簡單的python腳本,需要三個參數-f -l -a。我想-a是一個可選參數,正在嘗試/除了最有效的方法來實現這一點(我想如果他們不通過所需的參數,我需要捕捉異常)?這裏是腳本,在此先感謝:可選參數通過python腳本


try: 
    (options, args) = getopt.getopt(sys.argv[1:], 'f:l:a:', ['first=', 'last=', 'age=']) 

except getopt.GetoptError: 
    help() 

for option in options: 

     if option[0] == '-f': 
       firstName = option[1] 
     elif option[0] == '-l': 
       lastName = option[1] 
     elif option[0] == '-a': 
       personAge = option[1] 

if (firstName is None): 
    print >>sys.stderr, "Missing first name" 
    sys.exit(1) 

if (lastName is None): 
    print >>sys.stderr, "Missing first name" 
    sys.exit(1) 

try: 
    (personAge is None) 
except NameError: 
    print("Setting personAge to unknown") 
    personAge = 'Unknown' 

print firstName + " " + lastName + " " + personAge 
+3

您是否認爲大膽製作大字體會讓您的問題更加緊迫? –

+0

@Jack_of_All_Trades剛剛批准了待定編輯。 – Algorithmist

回答

0

選擇有理VS Python文檔中的位置參數第一的理念。

嘗試查看argparse模塊。它的API更靈活,如果你仍然想這樣做。

+0

「必需的選項通常被認爲是不好的形式,因爲用戶期望選項是可選的,因此應儘可能避免它們的使用」 http://docs.python.org/2.7/library/argparse.html#required – mighq