1

我是 Python 新手(流利的 C++),并且正在按需学习。我编写了一个脚本,它接受多个参数并创建和保存一个 matplotlib 图。它没有函数、方法、类等。它只是一系列产生图形的指令。我想编写另一个脚本,以尽可能简单地执行该脚本及其参数。

这在 Python 中可能吗?

4

2 回答 2

2

看看stdlib的子进程模块:http ://docs.python.org/2/library/subprocess.html

from subprocess import call
call([sys.executable, 'script.py', arg1, arg2])

有关您的选项的完整列表,请查看类似的问题:Calling an external command in Python

阅读我上面提供的链接上的文档,特别是如果您需要此调用是安全的(确保您信任验证这些参数)。

更新

作为替代(和更好)的选择是通过仅导入它来运行此代码。

如果您清理它并将其放入一个函数中,然后从您的主程序中导入并调用它,您不需要将该模块作为脚本执行,如果您需要,您仍然可以轻松地将它作为独立脚本运行:

# script.py
def func(param1, param2, param3)
    #...

if __name__=="__main__":
    # get params...
    func(param1, param2, param3)
    # handle output etc...


# main.py
# ...
from script import func
# ...
func(param1, param2, param3)
# ...
于 2013-04-08T20:03:25.233 回答
-1

您可以使用子流程模块。

import subprocess

subprocess.Popen([sys.executable, "save_graph.py", parameter1, parameter2])

执行后,此代码片段将等待“save_graph.py”完全执行,然后再继续。

如果您想生成一个与其父进程分离的子进程,则必须执行以下操作:

DETACHED_PROCESS = 0x00000008
subprocess.Popen([sys.executable, "smtp_email.py", email, vcode], creationflags = DETACHED_PROCESS).pid
于 2013-04-08T20:31:38.743 回答