Получение строки из Python скрипта в С#

191
30 мая 2018, 16:00

Нужно запустить Python3 скрипт на С#. IronPython, как выяснилось, поддерживает только python2. В итоге отлично получается запускать скрипт просто передав строку в терминал:

string strCmdText;
strCmdText = "/C python J:\\workspace\\Python\\telegram_client\\client.py";
Process.Start("CMD.exe", strCmdText);

Таким способом строка strCmdText передается в терминал, и скрипт отрабатывает отлично. ВОПРОС: Как получить строку(или иные данные) из этого скрипта client.py? Возможно можно дописать что то в сам скрипт что бы была передача значения или что то сможете подсказать другое? Спасибо!=)

Если кому интересно: Обсуждение по вопросу запуска файла через cmd.

Answer 1

Огромное спасибо ребятам за помощь! В итоге для решения поставленного вопроса был использован следующий код:

        Process p = new Process();
        p.StartInfo = new ProcessStartInfo("CMD.exe", "/C python J:\\workspace\\Python\\telegram_client\\client.py");
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.UseShellExecute = false;
        p.Start();
        StringBuilder q = new StringBuilder();
        while (!p.HasExited)
        {
            q.Append(p.StandardOutput.ReadToEnd());
        }
        string r = q.ToString();

В python скрипте client.py данные выводятся через print(result). В кодировке проблем не возникало. Но по кодировке(если возникнет проблема) можете почитать по ссылке

READ ALSO
Naudio файл используется другим процессом

Naudio файл используется другим процессом

Есть небольшой код воспроизведения аудио через библиотеку Naudio

188
Как найти пропорцию размера в Picturebox?

Как найти пропорцию размера в Picturebox?

Есть pictureboxС помощью мыши я выбираю прямоугольник, который буду вырезать и сохранять в файл

182
Не работает конструкция if!

Не работает конструкция if!

Пишу новостной парсерБыл старый метод получения данных из RSS,попроще, он работал

196
Задание угловой скорости в box2dx

Задание угловой скорости в box2dx

Не знаю корректно ли задавать тут вопрос по конкретной библиотеке, но сильно не понимаю, поэтому пишуМожет кто сталкивался

209