2016-05-09 87 views
-2

我試圖傳遞變量調用方法(子)可變參數如下:在蟒蛇子過程調用方法

def check(number): 
    nodes = ["10.0.0.1","10.0.0.2"] 
    nr=number 
    for node in nodes: 
     output=call(["ssh","-F","/home/config","[email protected]",_node,","some_command",_nr]) 
     print output 

當此功能「檢查」之稱的誤差小於:

NameError: global name '_node' is not defined 

你能幫我嗎?

+3

你爲什麼要通過_node&_nr?你不應該通過node&nr嗎? – mikea

+1

你的問題比任何使用'subprocess'更重要。開始小一點:嘗試建立你打算傳遞給'call'的列表,並在繼續之前驗證這個列表是否與你認爲應該看起來一樣。你會發現你可能需要學習一些關於使用字符串的東西(也許可以在Python中連接和格式化字符串來查找教程)。\ – jez

+1

'user @ node'必須是一個參數,或者使用'「-u 「,用戶,節點」分別指定用戶和遠程主機。 – chepner

回答

3

您從未定義過_node。您定義了nodenodes,但從未使用_node。我也看不到你在哪裏定義_nr

+0

編寫代碼時,我指的是http://stackoverflow.com/questions/4795190/pass-variable-to-subprocess-call-in-python!謝謝:) – Ardit

+0

做這樣的事情時要非常小心:)。 –