Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
838 views
in Technique[技术] by (71.8m points)

winforms - How can I pass command-line arguments in IronPython?

I am working with IronPython and have got it working somehow. Though, there seems to be no resource on passing command-line arguments to Iron Python. How can I pass command-line arguments to a python program from my C# code?

setup = new ScriptRuntimeSetup();
                setup.LanguageSetups.Add(IronPython.Hosting.Python.CreateLanguageSetup(null));
                runtime = new ScriptRuntime(setup);
                runtime.IO.RedirectToConsole();
                m_engine = runtime.GetEngine("IronPython");
                m_scope = m_engine.CreateScope();
                source = m_engine.CreateScriptSourceFromString("search_movie.py ""+CommandTextBox.Text+""", SourceCodeKind.InteractiveCode);
                source.Execute(m_scope);

What more do I need to do here? As you can see, the name of the python file there is search_movie.py and it takes a movie-name as argument.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Solution Image

C# Code:

 string file = @"C:UsersM GHOUSSourceReposdotnet_pythondotnet_pythonest.py";
        ScriptEngine engine = Python.CreateEngine();
        ScriptScope scope = engine.CreateScope();
        scope.SetVariable("var1", "data of var1");
        scope.SetVariable("var2", "data of var2");
        scope.SetVariable("var3", "data of var3");
        engine.ExecuteFile(file, scope);

Python :

print(var1)

print(var2)

print(var3)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...