Мой C# код:
static string pyExe = "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\python.exe";
var psi = new Process();
string name = "show_ing.py";
string script = "C:\\Users\\micosin\\source\\practiceDotNet\\python\\" + name;
C:\Users\micosin\source\practiceDotNet\python
psi.StartInfo.FileName = pyExe;
psi.StartInfo.Arguments = script;
psi.StartInfo.UseShellExecute = false;
psi.StartInfo.CreateNoWindow = false;
psi.StartInfo.RedirectStandardOutput = true;
psi.StartInfo.RedirectStandardError = true;
psi.StartInfo.StandardErrorEncoding = Encoding.UTF8;
psi.StartInfo.StandardOutputEncoding = Encoding.UTF8;
psi.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
psi.Start();
psi.BeginOutputReadLine();
psi.WaitForExit();
...
static void p_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}
Python сценарий show_ing.py для создания тестового вывода:
# -*- encoding=utf-8 -*-
import sys
import time
print(sys.argv)
while True:
print('PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP')
time.sleep(1)
Я хочу получить вывод во время выполнения сценария (следовательно, бесконечное l oop). При тестировании я получаю вывод скрипта только в том случае, если он завершается (нет l oop).