从c#表单应用程序执行python 3代码

本文关键字:python 3代码 执行 应用程序 表单 | 更新日期: 2023-09-27 17:49:14

作为学校的一个项目,我们班用python编写了一个简单的编程语言。现在我们用c#编写了一个简单的ide,它应该在一个新的控制台窗口中执行python脚本。我想知道做这件事最有效的方法是什么。(我应该用参数执行)

从c#表单应用程序执行python 3代码

您可以使用ProcessStartInfo

int parameter1 = 10;
int parameter2  = 5
Process p = new Process(); // create process to run the python program
p.StartInfo.FileName = "python.exe"; //Python.exe location
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false; // ensures you can read stdout
p.StartInfo.Arguments = "c:''src''yourpythonscript.py "+parameter1 +" "+parameter2; // start the python program with two parameters
p.Start(); // start the process (the python program)
StreamReader s = p.StandardOutput;
String output = s.ReadToEnd();
Console.WriteLine(output);
p.WaitForExit();

运行python脚本有两种方式:

    运行python脚本的一种方法是运行python.exe文件:
    使用ProcessStartInfo运行python.exe文件,并在其上传递python脚本。

private void run_cmd(string cmd, string args) {
ProcessStartInfo = new ProcessStartInfo();

     start.FileName = "my/full/path/to/python.exe";
     start.Arguments = string.Format("{0} {1}", cmd, args);
     start.UseShellExecute = false;
     start.RedirectStandardOutput = true;
     using(Process process = Process.Start(start))
     {
         using(StreamReader reader = process.StandardOutput)
         {
             string result = reader.ReadToEnd();
             Console.Write(result);
         }
     }  
}
另一种方法是使用IronPython并直接执行python脚本文件。
使用IronPython.Hosting

;
使用Microsoft.Scripting.Hosting;

private static void doPython()
{
    ScriptEngine engine = Python.CreateEngine();
    engine.ExecuteFile(@"test.py");
}