繁体   English   中英

从python脚本中运行python脚本

[英]Running python script from within python script

我是Python(C ++流利)的新手,正在根据需要学习。 我编写了一个脚本,该脚本带有几个参数,并创建并保存一个matplotlib图。 它没有函数,方法,类等。它只是一系列产生图形的指令。 我想编写另一个脚本,该脚本将使用其参数尽可能简单地执行该脚本。

这在Python中可行吗?

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

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

有关选项的完整列表,请查看以下类似问题: 在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)
# ...

您可以使用子流程模块。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM