IronPython如何从C#中将命令行参数传递给脚本文件

时间:2015-04-12 22:32:23

标签: c# python ironpython

IronPython将直接从C#运行而不需要Process.Start

我要加载的脚本文件需要一个参数(filename), 你怎么用C#写出来的?

  

注意:这有望成为一个Python脚本转换为Windows GUI应用程序,您可以使用GUI来选择文件。

1 个答案:

答案 0 :(得分:1)

假设脚本generator.py看起来像

import sys
fileName = sys.argv[0]
print "working on", fileName

一个IronPython引擎可以通过

托管在C#/。NET中
var options = new Dictionary<string, object>();
options["Arguments"] = new[] { @"/somefile.dat" };

var engine = Python.CreateEngine(options);
var runtime = engine.Runtime;
var scope = engine.CreateScope();

var script = engine.CreateScriptSourceFromFile(@"generator.py");
script.Execute(scope);

导致输出working on /somefile.dat