【发布时间】:2017-11-22 18:00:55
【问题描述】:
我正在尝试使用 popen 启动一个子进程,该子进程一个接一个地调用两个命令(有多个参数)。第二个命令依赖于第一个命令的运行,所以我希望使用单个子进程来运行这两个命令,而不是生成两个进程并等待第一个。
但我遇到了问题,因为我不确定如何提供两个命令输入或将命令作为一个对象分开。
另外,如果可能,我会尽量避免将 shell 设置为 true。
这基本上就是我想要做的:
for test in resources:
command = [
'pgh',
'resource',
'create',
'--name', test['name'],
'--description', test['description'],
]
command2 = [
'pgh',
'assignment',
'create',
'--name', test['name'],
'--user', test['user'],
]
p = Popen(command, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
print(stdout)
print(stderr)
【问题讨论】:
-
您能否更具体地说明问题是什么?是什么阻止您使用
command2第二次拨打Popen? -
我希望使用相同的进程,因为命令需要按顺序调用,所以一个子进程一个接一个地运行两个命令,而不是多个子进程
-
那么问题应该是“顺序”而不是“同步”吗?
标签: python python-2.7 subprocess