2017-07-24 43 views
1

在我的python腳本中使用getopt.getopt()函數時,臨時返回值保持爲空。我錯過了什麼。getopt.getopt中的temp保持爲空

def ParseOpts(cmdName): 
    shortForm = 'c:n:'; 
    longForm = 'cluster=,node='.split(','); 

    try: 
     print sys.argv; 
     temp, args = getopt.getopt(sys.argv, shortForm, longForm); 
     print temp; 
    except getopt.GetoptError: 
     print 'error !!' 

命令:

$ python helloWorld.py --cluster=Test --node=Test2 
['helloWorld.py', '--cluster=Test', '--node=Test2'] 
[] 
+0

作爲一個樣式說明,每行末尾的分號在Python中是不必要的,並且相當多地混淆了代碼。 –

回答

1

你混淆getopt,其中預計列表僅參數,通過與整個sys.argv提供它。它立即看到文本 "helloWorld.py"(它不能解析爲getopt參數),並假定它的參數列表結束。你想跳過第一個參數,因爲它是程序名。

temp, args = getopt.getopt(sys.argv[1:], shortForm, longForm) 
+0

謝謝解決了這個問題...另請參閱我在所有的例子/文章我正在看,,,有選擇性的閱讀問題>< – jarnohenneman