如何使用命令行参数调用python脚本?

时间:2010-10-28 22:30:20

标签: python

我有一个脚本client.py,它直接读取命令行args作为脚本(不包含在main()之类的函数中),如下所示:

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

并打印出一堆东西。

我需要从我的代码中调用此脚本(如果重要的话,请在Google App Engine上调用)。似乎在调用

import client

将client.py作为脚本运行,但如何指定参数?

3 个答案:

答案 0 :(得分:2)

除非必须这样做,否则不应该这样做:如果你有两个Python脚本,它们可以用Python而不是通过命令行解析器进行通信。使用client.py检查重写if __name__ == "__main__",然后直接从您的脚本调用其主函数。

如果您没有这样做的选择(如果可能的话,您应该避免这种情况),您可以设置sys.argv;我不确定GAE是否允许你这样做。你也可以使用subprocess.Popen

答案 1 :(得分:1)

你做不到。使用subprocessos.exec*(),或修改其他脚本以使用解析参数的主要标记,然后将其传递给main()函数,然后使用适当的方法自行调用main()参数。

此外,import client

答案 2 :(得分:1)

Google AppEngine使用significantly modified version of Python并禁用了大量系统和子进程库以及大多数C python模块。要调用该脚本,您需要导入一个入口点并调用它。我相信约定是调用你的入口点main并调用它,传递它可能需要的任何args。这是一般的好习惯。例如,在调用应用程序中:

from client import main
main()