执行方式分为两步:
1.启动cmd.exe。
2.命令行中输入python XXXX.py指令。
1. C#启动命令行
使用Process进程类,该类在System.Diagnostics名称空间下。
using System.Diagnostics;
1.1声明对象
Process process;
ProcessStartInfo processInfo;
1.2填充目标信息
processInfo = new ProcessStartInfo();
processInfo.FileName = @"cmd.exe"; //目标文件,未配置环境变量时需填写绝对路径
processInfo.UseShellExecute = true;
processInfo.CreateNoWindow = true;
1.3启动进程
process = Process.Start(processInfo);
执行后可以看到命令行启动,且启动目录为C#项目的exe文件所在的目录。
2. 使用命令行启动Python脚本
在命令行中输入 python C:\xxx\xxx.py 可执行绝对路径下的python文件,前提是配置了python环境变量,你需要保证python是一个有效指令。如果python文件位于当前目录则可直接输入 python xxx.py
2.1使用C#代码代替这些步骤
修改原有代码
processInfo.FileName = @"cmd.exe";
processInfo.Arguments = "/C XXXX.py";
// processInfo.Arguments = "/C C:/xxxx/xxxx.py";
processInfo.UseShellExecute = false; //使用Shell执行将无法启用RedirectStandardOutput
processInfo.RedirectStandardOutput = true;
processInfo.CreateNoWindow = true;
执行进程
progressTest = Process.Start(start);
string output = progressTest.StandardOutput.ReadToEnd(); //将执行后的结果全部读取
textBoxContent.text = output; //可以以其他任何方式显示
执行的python文件,使用print将C#想获取的值输出。
import numpy as np
import matplotlib.pyplot as plot
.....
print(ListOject);