조회 수 41171 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print


출처 : http://taesudo.blog.me/120069564847


 

저는 Pyhon을 좋아하는데 GUI 때문에 C#을 사용하는 경우가 많습니다.

그러다보니 Python으로 짠 것을 다시 C#으로 변경하는 일이 종종 있었죠.

그게 통 맘에 안 들었는데 이번에 좋은 방법을 찾아냈습니다.

개발환경: Visual Studio 2008에서 C# 사용, IronPython2.0 설치

C# 파일: (참조에서 IronPython을 먼저 참조추가해야 합니다.)

----------------------------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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)

1
2
3
4
5
6
7
8
9
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'


VS2008에서 실행해 보세요. 잘 될 것입니다. 파이선에서 만든 리스트나 사전을 C#에서 쉽게

불러올 수 있네요. 이제 파이선으로 핵심 프로그램은 짠 다음 C#에서는 그 결과만 보여주면 되네요.

http://blog.naver.com/drmstorm/50015791071 여기서 힌트를 얻었습니다. 감사^^^


Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
91 Python Visual Studio 2005 + IronPython 연동하기 2012.02.02 19500 0
» Python C#에서 Python 파일 실행하고 결과 가져오기 2012.02.02 41171 0
89 개념 HLS(HTTP Live streaming) 2012.02.01 36248 0
88 개념 UAProf(User Agent Profile) 2012.02.01 21618 0
87 개념 RTSP(Real Time Streaming Protocol) 2012.02.01 21593 0
86 개념 DLNA(Digital Living Network Alliance) file 2012.01.27 20303 0
85 개념 CFM(Content Forward Management) 2012.01.27 20971 0
84 C# c# file i/o 샘플 2012.01.04 20496 0
83 C# 문자열 검색 / 조작 2012.01.03 27179 0
82 C# XML 간단 예제 2012.01.03 26775 0
81 LINUX [Shell Script] bash에서 source 명령 2012.01.02 65991 0
80 Android [GIT 사용법] 초보자가 알아두면 좋을 명령어 정리 1 2011.12.26 70432 0
79 Android [GIT 사용법] Git Tutorial 2011.12.26 100761 0
78 MFC 레지스트리 쓰기, 읽기 함수 정리 2011.07.26 34328 0
77 일반 가변 인수를 가지는 함수 및 매크로 만들기 2011.02.09 38426 0
목록
Board Pagination ‹ Prev 1 ... 24 25 26 27 28 29 30 31 32 33 ... 35 Next ›
/ 35

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

불러오는 중···