Как перехватывать сообщения при запуске скрипта Python в C #? - PullRequest
0 голосов
/ 06 января 2019

Мне нужно перехватывать сообщения, поступающие от скрипта Python во время его работы. Следующее захватывает ответ после завершения процесса.

private void BW_DoWork(object sender, DoWorkEventArgs e)
        {
            ProcessStartInfo start = (ProcessStartInfo) e.Argument;
            using (Process process = Process.Start(start))
            {
                using (StreamReader reader = process.StandardOutput)
                {
                    string stderr = process.StandardError.ReadToEnd(); // Here are the exceptions from our Python script
                    string result = reader.ReadToEnd(); // Here is the result of StdOut(for example: print "test")
                    e.Result = stderr + "  >>  " + result;
                    TxtPrompt.Invoke((MethodInvoker)delegate {
                        TxtPrompt.Text = stderr + "  >>  " + result;


                    });
                    //TxtPrompt.AppendText(stderr);
                    //TxtPrompt.AppendText(Environment.NewLine);
                    //TxtPrompt.AppendText(result);
                    //TxtPrompt.AppendText(Environment.NewLine);
                }
            }
        }

Следующий скрипт Python печатает от 0 до 9 с интервалом в 1 секунду.

import time
for x in range(500):
    print(x)
    time.sleep(0.05)

Как я могу печатать числа во время печати? Текущий метод (приведенный выше) показывает все сразу в конце скрипта.

Любая помощь приветствуется.

...