Python子进程 - 在创建的新命令提示符中运行第二个命令

问题描述 投票:0回答:2

Python x.6.7,Oindos 7/10

我必须使用subprocess.run一个接一个地运行两个命令。第一个命令打开一个新的命令提示符。需要在新创建的命令提示符中运行下一个命令。使用下面的代码,第二个命令始终在初始命令提示符下运行。可以这样做吗?

import subprocess

subprocess.run('first command', shell=True)  #first command opens a new command prompt
subprocess.run('second command', shell=True)  #second command needs to be run in the newly created command prompt
python python-3.x subprocess
2个回答
1
投票

这取决于你想要运行哪些命令,但我认为一个解决方案是创建一个接一个地运行这两个命令的批处理脚本。

或者您可以尝试在第一个子进程的stdin上编写第二个命令,例如:

pipe = subprocess.Popen('first command', shell=True, stdin=subprocess.PIPE)
pipe.communicate(input='second command')

但我不确定这是否有效,因为该过程将在第一个命令终止后立即完成?

编辑:添加缩进


0
投票

你为什么不管道命令?

subprocess.run('first command | second command', shell=True)
© www.soinside.com 2019 - 2024. All rights reserved.