我是Python新手(C ++流利),我正在根据需要学习。我写了一个脚本,它接受了几个参数,并创建并保存了一个matplotlib图。它没有函数,方法,类等。它只是一系列产生图形的指令。我想编写另一个脚本,尽可能简单地使用其参数执行此脚本。
这在Python中可行吗?
答案 0 :(得分: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
阅读上面提供的链接上的文档,特别是如果您需要此调用是安全的(请确保信任或验证那些PARAMS)。
<强>更新强>:
作为替代(并且更好)的选择,只需导入它就可以运行此代码。
如果你清理它并把它放在一个函数中然后导入并从你的主程序中调用它你不需要将该模块作为脚本执行,如果你需要,你仍然可以运行它简单的独立脚本:
# 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)
# ...
答案 1 :(得分:-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