Click here to Skip to main content
Licence CPOL
First Posted 13 Sep 2006
Views 25,214
Downloads 188
Bookmarked 11 times

Call Ironpython in C#

By | 13 Sep 2006 | Article
Call ironpython in C#

Introduction

Ironpython is a good script language to be used as a glue in .NET projects, especially in the parts that need to be changed frequently due to business growing or changing, or in restricted deployment environments.

In this sample, it passes the file header to python, python parses the header with regex and returns to C# function.

public string callPythonFile(string pyFile, Hashtable parameters)
{
    if (!File.Exists(pyFile) )
        return "Can not find "+pyFile;
    PythonEngine pe = new PythonEngine();
    if (parameters != null)
    {
        foreach (string key in parameters.Keys)
            pe.Globals.Add(key, parameters[key]);
    }
    MemoryStream sout = new MemoryStream();
    pe.SetStandardOutput(sout);
    pe.ExecuteFile(pyFile);
    return ASCIIEncoding.ASCII.GetString(sout.ToArray());
}

To run the demo, you need .NET 2.0 or Visual Studio 2005, IronPython 1.0. You need to copy IronPython.dll to the test folder.

Python file: Test1.py

import re
g=globals()
str=g['param1']
if re.match('...HDR',str):
    print 'HDR'
else:
    print 'NONE'

Call:

Hashtable ht = new Hashtable();
ht.Add("param1", param1);
outPut=new IronPythonAgent().callPythonFile(pyFile,ht);

History

  • 13th September, 2006: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

q1andq2

Web Developer

Canada Canada

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralCalling Multiple functions from IronPaython using c# Pinmembersnehat0:04 21 Nov '07  
GeneralIt doesn't support with IronPython 2.0A3 Pinmemberdreamwinter16:58 9 Aug '07  
GeneralVery useful article! Thanks a lot! Pinmemberzilibaba16:00 24 Nov '06  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120517.1 | Last Updated 13 Sep 2006
Article Copyright 2006 by q1andq2
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid