从另一个脚本运行python脚本
我希望运行一个python脚本,该脚本从另一个python脚本获取选项和参数。从另一个脚本运行python脚本
For example run C:\\code\\old_start_training_generic_depth.py -i 10 -l 2 from C:\\code\\start.py
C:\代码\ start.py:
import subprocess
subprocess.Popen(["python", r"C:\code\old_start_training_generic_depth.py", "-i", "10", "-l", "2"])
你可以做,使用subprocess.Popen
,可用于从您的Python代码运行任何外部程序(包括其他的Python程序)。
这就是说,我会这样做,否则。由于这两个程序都是用Python编写的,因此我会将要调用的程序打包为可通过编程方式调用(即导入并调用)的模块,而不是将其称为子进程。这可能会带来一些小的开发成本,但最终我相信它会为自己付出代价,因为这种方法有很多优点。
+1给了所需要的答案,以及这是问的人。 – Johnsyweb 2011-05-16 09:49:06
import subprocess
subprocess.Popen(['C:\\code\\old_start_training_generic_depth.py', '-i', '10', '-l', '2']).wait()
你不只是'沟通()'并扔掉结果。 – 2011-05-16 09:48:17
# once upon a time somewhere in the start.py
os.system("python C:\\code\\old_start_training_generic_depth.py -i 10 -l 2")
import subprocess
def runscript():
'''
Run a script
'''
cmd_list = ["python", r"C:\code\old_start_training_generic_depth.py", \
"-i", "10", "-l", "2"]
pipe = subprocess.Popen(cmd_list, stdin=subprocess.PIPE, \
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
stdout, stderr = pipe.communicate()
retcode = pipe.poll()
return (retcode, stdout, stderr)
尽管为了应付系统中安装的多个Python版本,通常使用'sys.executable'而不是使用硬编码'“python”''更好。 – ncoghlan 2011-05-16 11:44:08