Я хочу встроить исполняемый файл (в частности, «python.exe», интерпретатор Python 2.7) в свое консольное приложение C#, то есть я хочу, чтобы пользователь вводил команды, получал вывод интерпретатора в строковую переменную и использовал Console.WriteLine для распечатать этот вывод. Мой код до сих пор:
ProcessStartInfo processStartInfo = new ProcessStartInfo("C:/Python27/python.exe");
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.UseShellExecute = false;
Process process = Process.Start(processStartInfo);
if (process != null)
{
while (true)
{
process.StandardInput.WriteLine(Console.ReadLine());
process.StandardInput.Close();
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
}
}
Я могу написать «напечатать 5» и получить правильный вывод, но при повторной записи получаю следующую ошибку:
Невозможно записать в закрытый TextWriter.
Я считаю, что эта ошибка связана с тем, что я закрываю StandardInput, но без этой строки кода я вообще не получаю никакого вывода. Что я могу использовать для отправки нескольких команд в exe?
Заранее спасибо!
Close()
наFlush()
не работает, даже не запускается первая введенная мной команда... 24.07.2012