使用.net执行python代码,解析表达式
以前听说过.net可以执行python代码,这次终于派上用场了
NUGET 安装 IronPython .NET版本4.8以下选择 2.7.8 这个版本
public static string ExecPython(string pyCode) { ScriptEngine engine = Python.CreateEngine(); ScriptScope scope = engine.CreateScope(); var sourceCode = engine.CreateScriptSourceFromString(pyCode); var result = sourceCode.Execute<object>(scope); return result.ToString(); }
关键词需要符合python的语法规范
对于简单表达式,自带的DataTable也能解析,测试无法判断 ==
但是速度比py的快
string expression = "1+1"; DataTable eval = new DataTable(); object result = eval.Compute(expression, ""); Console.WriteLine(result);
2020.11 Update
转成js去执行也挺好,费这个劲搞python划不来
引用 Microsoft.JScript
注意判断= =用 = = =
static VsaEngine Engine = VsaEngine.CreateEngine(); static string EvalJScript(string JScript) { string Result = null; try { Result = Microsoft.JScript.Eval.JScriptEvaluate(JScript, Engine).ToString(); } catch (Exception ex) { Console.WriteLine(ex.Message); } return Result; }
不过上面那个效率实在是实在是非常低,换下面这个
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步