Как отобразить вывод python в текстовом поле C#? - PullRequest
0 голосов
/ 14 марта 2020

Я хочу отобразить стандартный вывод из скрипта python в текстовом поле, но после нажатия кнопки ничего не происходит. Если это не так, как я могу это исправить или заменить? Пример: я запускаю свою заявку в textbox1, у меня ничего нет, и после нажатия кнопки1 я хочу иметь в своем текстовом поле1 «Hello» из python script

private void button1_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
            {
                char[] spliter = { '\r' };
                int x = 1;

                Process python = new Process();
                python.StartInfo.FileName = "D:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python37_64\\python.exe";
                python.StartInfo.RedirectStandardOutput = true;
                python.StartInfo.UseShellExecute = false;

                python.StartInfo.Arguments = string.Concat("C:\\Users\\kamil\\source\\PythonApplication3\\PythonApplication3.py", " ", x.ToString());
                python.Start();

                StreamReader sReader = python.StandardOutput;
                string[] output = sReader.ReadToEnd().Split(spliter);


                foreach (string s in output)
                {
                    TextBox1.Text += s + Environment.NewLine;
                }

                python.WaitForExit();

Python script:

import sys

def main():
    print('Hello')

main()

1 Ответ

0 голосов
/ 14 марта 2020

Попробуйте добавить python.StartInfo.RedirectStandardError = true; и textBox1.Text += python.StandardError.ReadToEnd(); к своему коду, чтобы вы могли также зафиксировать ошибки в дополнение к выводу. Я бы сказал, что он не сможет «найти» файл, который вы передаете в качестве аргумента. Попробуйте добавить кавычки вокруг пути к файлу следующим образом: "\" C: \ Users \ kamil \ source \ PythonApplication3 \ PythonApplication3.py \ ""

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