Pythonファイルとのやりとりの例
■.NET Framework2.0 sp1
■IronPython 2.0
---- コード(Python側) ----
result = param1 + param2
---- コード(C#側) ----
using System;
using IronPython;
using IronPython.Hosting;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
...
public static void Main(string[] args)
{
try
{
ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
// C#と変数のやり取りをするPythonのファイルを設定
ScriptSource source =
engine.CreateScriptSourceFromFile("test.py");
// Python側の変数に値を設定
scope.SetVariable("param1", 1);
scope.SetVariable("param2", 10);
// 実行
source.Execute(scope);
// 実行後のPython側の変数値を取得
// 結果を出力 ==> 1
object arg1 = scope.GetVariable("param1");
System.Console.WriteLine(arg1);
// 結果を出力 ==> 10
object arg2 = scope.GetVariable("param2");
System.Console.WriteLine(arg2);
// 結果を出力 ==> 11
object res = scope.GetVariable("result");
System.Console.WriteLine(res);
}
catch (Exception ex)
{
System.Console.WriteLine("Error:"
+ ex.Message.ToString());
}
}
================================
C#で Pythonファイル(test.py)内の変数の値の設定、取得を行います。
Python側では、あらかじめ変数に値が設定されている必要はありません。
C#で Python側の変数param1, param2 に、それぞれ値を設定し、Python側が実行された後、ython側の計算結果のresult変数をC#で取得しています。
プログラミングなど
2009年5月17日日曜日
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿