2010-10-28 90 views
0

我有一個腳本,client.py,讀取命令行參數直作爲腳本(未包裹在像主()函數),像這樣:如何用命令行參數調用python腳本?

opts, args = getopt.getopt(sys.argv[1:], "l:r:a:j:b:f:n:u:") 

並打印一堆東西。

我需要從我的代碼中調用此腳本(在Google App Engine上,如果有的話)。看起來叫

import client 

作爲腳本運行client.py,但我該如何指定參數?

回答

2

你不應該這樣做,除非你必須:如果你有兩個Python腳本,他們可以在Python中進行通信,而不是通過命令行解析器進行通信。用if __name__ == "__main__"檢查重寫client.py,然後直接從您的腳本調用它的主函數。

如果您沒有選擇這樣做(並且您應該儘可能避免這種情況),您可以設置sys.argv;我不確定GAE是否允許你這樣做。 YOu也可以使用subprocess.Popen

1

你不行。使用subprocessos.exec*(),或修改另一個腳本以使用解析參數的主標記,然後將它們傳遞給main()函數,然後使用適當的參數自行調用main()

另外,import client

1

Google AppEngine使用significantly modified version of Python並禁用大量系統和子進程庫以及大多數C python模塊。要調用該腳本,您需要導入一個入口點並調用該入口點。我相信約定就是調用你的入口點並調用它,通過它可能需要的任何參數。一般而言,這是一個很好的做法。例如在調用應用程序中:

from client import main 
main() 
+0

感謝您的鏈接 - 我不知道GAE Python的變化。 – jbreed 2010-10-29 22:22:43

相關問題