【发布时间】:2016-09-08 10:49:10
【问题描述】:
我正在尝试使用 python 3 中的 subprocess.Popen 功能从另一个脚本 (scriptB) 中使用 python 2(比如 scriptA)调用脚本
我希望调用的脚本实现了一个 argparse 方法,该方法需要两个参数,如下所示: ScriptA(需要 python 2):
def get_argument_parser():
'''
'''
import argparse
parser = argparse.ArgumentParser("Get the args")
parser.add_argument("-arg1", "--arg1",required = True,
help = "First Argument")
parser.add_argument("-arg2", "--arg2",required = True,
help = "Second Argument")
return parser
现在,我使用 subprocess 调用上述脚本,如下所示: 脚本B:
value1 = "Some value"
value2 = "Some other value"
subprocess.Popen(["C:\\Python27\\python.exe ", ScriptAPATH, " -arg1 " , value1, " -arg2 ", value2],shell = True, stdout = subprocess.PIPE)
但是,我收到一个错误: 错误:参数 -arg1/--arg1 是必需的
接下来我尝试用 os.system 替换 subprocess.Popen,如下所示:
cmd = "C:\\Python27\\python.exe scriptA.py" + " -arg1 " + value1 + " -arg2 " + value2
os.system(cmd)
这很有效,在这种情况下,我可以从 ScriptA 访问参数。 关于第一种情况下可能出现什么问题的任何指示?我是 python 的新手,所以任何形式的帮助都将不胜感激
【问题讨论】:
标签: python-3.x subprocess python-2.x os.system