Используйте Popen для выполнения скрипта Powershell в Python, как я могу получить выходные данные скрипта Powershell и обновить его до веб-страницы? - PullRequest
3 голосов
/ 12 января 2011

Я создаю простой HTML с кнопкой. Когда пользователь нажимает кнопку, он вызывает файл Python, выполняемый на стороне сервера. В файле Python я использую Popen для вызова скрипта Powershell, как показано ниже:

command_line = r'"C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -psc "C:\Program Files\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -noe -c ". \"C:\DoSth\DoSth.ps1\""'
args = shlex.split(command_line)
sys.stdout.flush()
retcode = subprocess.Popen(args)

Но Powershell требует длительного времени для завершения (и генерирует много выходных данных во время выполнения). После того, как пользователь нажимает кнопку, браузер показывает «Ожидание xxx» в течение нескольких минут, пока код Python не будет выполнен полностью.

Вопрос: как я могу получить вывод Powershell во время выполнения и своевременно обновить вывод в браузере?

1 Ответ

0 голосов
/ 12 января 2011

Возможно ли использовать аргумент stdout для subprocess.Popen?

Я имею в виду что-то вроде:

retcode = subprocess.Popen(args, stdout=sys.stdout)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...