C# コンソール アプリケーションに exe ファイル (特に "python.exe"、Python 2.7 のインタープリター) を埋め込みたいと考えています。つまり、ユーザーがコマンドを入力し、インタープリターの出力を文字列変数に受け取り、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);
}
}
「print 5」と書いて正しい出力を得ることができますが、もう一度書くと次のエラーが発生します。
閉じた TextWriter に書き込めません。
このエラーは、StandardInput を閉じるためだと思いますが、そのコード行がないと出力がまったく得られません。複数のコマンドをexeに送信するには何を使用できますか?
前もって感謝します!