2010-10-28 91 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

相关问题