Python — подпроцесс не может использовать стандартный вывод с CREATE_NEW_CONSOLEPython

Программы на Python
Ответить
Anonymous
 Python — подпроцесс не может использовать стандартный вывод с CREATE_NEW_CONSOLE

Сообщение Anonymous »

test.bat

Код: Выделить всё

@echo off
for /L %%i in (40, -1, 10) do (
echo working %%i test1
ping localhost -n 2 > nul
)
echo Done!
main.py

Код: Выделить всё

import subprocess

startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = 5
process1 = subprocess.Popen('test.bat', stdout=subprocess.PIPE, text=True, creationflags=subprocess.CREATE_NEW_CONSOLE)

while process1.poll() is None:
test1 = process1.stdout.readline()
print(test1.rstrip(), flush=True)
Какой смысл в createflags=subprocess.CREATE_NEW_CONSOLE... если в окне консоли ничего нет... потому что вывод перенаправляется с помощью stdout=subprocess.PIPE?
Есть ли способ, которым subprocess.popen открывает реальный файл bat (с выходными данными, видимыми в окне консоли)... и отключает stdout=subprocess.PIPE в переменную... одновременно? (без сохранения stdout=subprocess.PIPE в текстовый файл)

Подробнее здесь: https://stackoverflow.com/questions/798 ... ew-console
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»