子进程打开PowerShell,运行命令,然后死亡

时间:2019-01-29 20:43:27

标签: python python-2.7 powershell subprocess

我编写了一些代码,这些代码使用Python subprocess模块打开PowerShell窗口,然后在同一窗口中运行命令。 PS窗口打开,然后几乎立即关闭。下面的代码将打开PS窗口,如果我从cmd中删除了第二个项目,它将保持打开状态。

import subprocess
cmd = ['powershell', 'ls']
prompt = subprocess.Popen(cmd, stdin=subprocess.PIPE)

3 个答案:

答案 0 :(得分:1)

添加-noexit参数如下(-noprofile不是必需的):

import subprocess
cmd = ['powershell', '-noprofile', '-noexit', '&', 'ls *.csv']
prompt = subprocess.call ( cmd )

结果

Powershell from python

答案 1 :(得分:0)

是否有理由不使用subprocess.call?我认为它完全可以满足您的要求。

答案 2 :(得分:0)

这是因为您忘记了communicate的处理 只需添加一行

output, error = prompt.communicate()  # this is to start the process
print(output) # add stdout=subprocess.PIPE
print(error)  # add stderr=subprocess.PIPE

PS:因为我不了解Powershell,所以我无法为您提供Powershell