从C#将Python输出发送到文件

时间:2019-07-01 05:29:24

标签: c# python

我想从 C#运行python脚本后获取输出和错误消息。输出有效,但是,如果python脚本中有错误,则输出将返回"",而我无法得到该错误。如果从Windows Shell运行python脚本,则错误显示正确。

作为一种解决方法,我想从python脚本输出到txt文件,然后在C#中读取文本文件。下面的内容在shell中为mylog.log文件编写。

python c:\temp\text.py 2>&1 | tee -filePath mylog.log

如果我在C#中运行以下代码,则不会创建mylog.log文件。

    public string RunFile(string fileName)
    {
        fileName = @"c:\temp\text.py 2>&1 | tee -filePath c:\temp\myLog.log";

        Process p = new Process();
        p.StartInfo = new ProcessStartInfo(@"python", fileName)
        {
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true,
            WorkingDirectory = @"c:\temp"
        };
        p.Start();

        p.WaitForExit();
        string output = p.StandardOutput.ReadToEnd();

        return output;
    }

1 个答案:

答案 0 :(得分:0)

感谢您的评论。我刚刚启用了错误重定向,正在读取C#中的错误。

indexes=[0,1,3,4,5]