我想用C#执行python脚本并从中读取。
class Program
{
public static void Main(string[] args)
{
Process p = new Process();
p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
p.StartInfo.FileName = "sudo";
p.StartInfo.Arguments = "python gpio.py";
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
p.BeginOutputReadLine();
p.WaitForExit();
}
private static void OutputHandler(Object sender, DataReceivedEventArgs args)
{
Console.WriteLine(args.Data);
}
}
调试时我可以看到进程已退出 Click for image
但在TaskManager中我可以看到,该进程仍在运行。 脚本也控制gpio引脚。并且脚本控制引脚(Led on / off),即使“Process has exited”也是如此。但是我没有从redirectOutput获得任何东西。
为什么进程在启动后立即退出(脚本有一段时间为真。它不应该停止)?这是执行脚本的正确方法吗? 如果我从终端执行Python脚本,它工作正常。它不应该是脚本的错误。 如果我开始一个过程,例如FileName“libreoffice”,它也有效。
脚本位于“/ bin / Debug /”(文件夹)中的项目文件夹中 执行权限是为任何人设置的。
谢谢,
问候