Подпроцесс открывает PowerShell, запускает команды, затем умирает - PullRequest
0 голосов
/ 29 января 2019

Я написал некоторый код, который использует модуль Python subprocess, чтобы открыть окно PowerShell, а затем запустить команду в этом же окне.Окно PS открывается, затем почти сразу закрывается.Код ниже откроет окно PS и оставит его открытым, если я удалил второй элемент из cmd.

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

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Это потому, что вы забыли 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

0 голосов
/ 30 января 2019

Добавьте -noexit аргумент следующим образом (-noprofile не является обязательным):

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

Результат :

Powershell from python

0 голосов
/ 30 января 2019

Есть ли причина не использовать subprocess.call вместо этого?Я думаю, что это будет делать именно то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...