댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
Python
2012.02.02 08:20
C#에서 Python 파일 실행하고 결과 가져오기
조회 수 40097 댓글 0
저는 Pyhon을 좋아하는데 GUI 때문에 C#을 사용하는 경우가 많습니다. 그러다보니 Python으로 짠 것을 다시 C#으로 변경하는 일이 종종 있었죠. 그게 통 맘에 안 들었는데 이번에 좋은 방법을 찾아냈습니다.
개발환경: Visual Studio 2008에서 C# 사용, IronPython2.0 설치
C# 파일: (참조에서 IronPython을 먼저 참조추가해야 합니다.) ---------------------------------- using IronPython.Hosting; //파이선을 실행하기 위해 추가 class getPython { static void Main(string[] args) { //먼저 참조추가에서 IronPython을 추가하야 한다. //물론 그 전에 IronPython이 설치되어 있어야 겠지. (현재는 2.0버젼 2009.6.4) PythonEngine python = new PythonEngine(); //파이선 명령어 실행 python.Execute("res = 10"); object result = python.Globals["res"]; //결과를 받음 Console.WriteLine("result: {0}", result.ToString()); int number = 50; python.Globals["number"] = number; //파이선에서 사용할 변수의 초기값 지정하여 저장 try { //파이선 프로그램 파일 실행. python.ExecuteFile("../../simple.py"); } catch (Exception ex) { Console.WriteLine(ex.Message); } result = python.Globals["result"]; Console.WriteLine("result: {0}", result.ToString()); IronPython.Runtime.List result2 = (IronPython.Runtime.List)python.Globals["listA"]; // IronPython.Runtime.List Console.WriteLine("result: {0}", result2.GetLength()); string strA = result2.ToCodeString(); //리스트를 가져와서 보여주자. foreach(int aa in result2){ Console.WriteLine("result: {0} {1}", strA, aa); } //사전도 가져와서 보여주자. IronPython.Runtime.Dict result3 = (IronPython.Runtime.Dict)python.Globals["dictA"]; // IronPython.Runtime.List Console.WriteLine("result: {0}", result3.GetLength()); foreach (string aa in result3) { Console.WriteLine("result: {0} {1}",aa, result3[aa]); } Console.ReadLine(); } } __________________________________ #파이선 파일(simple.py) def Divide(number): return number/2 result = Divide(number)listA = [10,20,30,40,50]dictA = {} dictA['우리나라'] = '대한민국' dictA['중국'] = 'china' dictA['미국'] = 'USA' dictA['일본'] = 'Japan' dictA['영국'] = 'England'
불러올 수 있네요. 이제 파이선으로 핵심 프로그램은 짠 다음 C#에서는 그 결과만 보여주면 되네요. http://blog.naver.com/drmstorm/50015791071 여기서 힌트를 얻었습니다. 감사^^^ Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5