2012-11-23 265 views
0

我已經編寫了一個腳本,它反過來運行一些其他代碼,我需要在執行它之前檢查後面代碼中的一些條件!所以我想到了使用命令行參數,並且我沒有更好的關於OOP概念的知識來編寫在堆棧溢出中類似問題的大部分答案中推薦的類。 我可以通過這樣的傳遞命令行參數

subprocess.call([sys.executable, 'Cnt1', 'argument1', 'argument2']) 

參數如果我能,如何在後面的代碼讀取參數? 我試圖打印

print sys.executable 
print Cnt1 

其示值誤差爲打印CNT1

回答

0

您可以使用subprocess模塊確實運行python,並通過論證了這一點。本質上你會運行一個全新的程序;這與調用函數不一樣。 通常雖然沒有必要去如此激烈的長度。

如果您確實運行單獨的python腳本,則需要解析從sys.argv傳遞的參數。 argparse module可以簡化這個過程,但如果你只是傳遞一個參數列表,那就不是必需的。

import sys 
print sys.argv 
1

您指定'Cnt1'作爲子調用的字符串

print Cnt1會產生因爲Cnt1錯誤不是一個變量

你的語法應該是subprocess.call([sys.executable, Cnt1, argument1, argument2])

假設你已經要求Cnt1,argument1和argument2變量中的值