我有一个脚本,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,但我该如何指定参数?
我有一个脚本,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,但我该如何指定参数?
你不应该这样做,除非你必须:如果你有两个Python脚本,他们可以在Python中进行通信,而不是通过命令行解析器进行通信。用if __name__ == "__main__"
检查重写client.py
,然后直接从您的脚本调用它的主函数。
如果您没有选择这样做(并且您应该尽可能避免这种情况),您可以设置sys.argv
;我不确定GAE是否允许你这样做。 YOu也可以使用subprocess.Popen
。
你不行。使用subprocess
或os.exec*()
,或修改另一个脚本以使用解析参数的主标记,然后将它们传递给main()
函数,然后使用适当的参数自行调用main()
。
另外,import client
。
Google AppEngine使用significantly modified version of Python并禁用大量系统和子进程库以及大多数C python模块。要调用该脚本,您需要导入一个入口点并调用该入口点。我相信约定就是调用你的入口点并调用它,通过它可能需要的任何参数。一般而言,这是一个很好的做法。例如在调用应用程序中:
from client import main
main()
感谢您的链接 - 我不知道GAE Python的变化。 – jbreed 2010-10-29 22:22:43