C#调用python解释器

时间:2018-06-30 16:00:08

标签: c# python interpreter

我是C#的新手,我尝试使用ProcessStartInfo类执行python程序。我遵循了this link ,并做了同样的事情。但是,我无法获得任何重定向输出。我尝试使用参数执行Python解释器,没有问题。但是,我看到控制台弹出,然后立即消失。没有输出打印。我尝试使用方法process.waitForExit(),但控制台也消失了。有什么想法吗?

ProcessStartInfo start = new ProcessStartInfo();
            start.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe";
            start.Arguments = @"C:\Users\test\test.py";
            start.UseShellExecute = false;
            start.RedirectStandardOutput = true;
            start.RedirectStandardError = true;
            using (Process process = Process.Start(start))
            {

                using (StreamReader reader = process.StandardOutput)
                {
                    string result = reader.ReadToEnd();
                    Console.Write(result);
                    process.WaitForExit();
                }
            }

1 个答案:

答案 0 :(得分:1)

如果从VS启动应用程序,则VS在完成执行后将关闭应用程序控制台。尝试将Console.ReadLine()添加为程序的最后一行。

using (Process process = Process.Start(start))
{
    using (StreamReader reader = process.StandardOutput)
    {
        string result = reader.ReadToEnd();
        Console.Write(result);
    }
 }
 Console.ReadLine();