我编写了一些代码,这些代码使用Python subprocess
模块打开PowerShell窗口,然后在同一窗口中运行命令。 PS窗口打开,然后几乎立即关闭。下面的代码将打开PS窗口,如果我从cmd
中删除了第二个项目,它将保持打开状态。
import subprocess
cmd = ['powershell', 'ls']
prompt = subprocess.Popen(cmd, stdin=subprocess.PIPE)
答案 0 :(得分:1)
添加-noexit
参数如下(-noprofile
不是必需的):
import subprocess
cmd = ['powershell', '-noprofile', '-noexit', '&', 'ls *.csv']
prompt = subprocess.call ( cmd )
结果:
答案 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