如何在IronPython / Mono中运行OS shell命令?

时间:2009-05-01 07:34:25

标签: shell mono ironpython

我想试试IronPython和Mono。具体做sysadmin任务。这通常意味着运行OS命令。 在CPython中,我使用子进程模块执行此类任务。 但是在IronPython(v2.0.1,Mono 2.4,Linux)中没有子进程模块。似乎甚至没有'os'模块。所以我不能使用os.system()。 在CPython中,通常使用'subprocess'或'os.system()'的IronPython执行任务的方式是什么?

4 个答案:

答案 0 :(得分:11)

我找到了答案。感谢“IronPython Cookbook”。 可以在那里找到关于这个主题的更多信息: http://www.ironpython.info/index.php/Launching_Sub-Processes

>>> from System.Diagnostics import Process
>>> p = Process()
>>> p.StartInfo.UseShellExecute = False
>>> p.StartInfo.RedirectStandardOutput = True
>>> p.StartInfo.FileName = 'uname'
>>> p.StartInfo.Arguments = '-m -r'
>>> p.Start()
True
>>> p.WaitForExit()
>>> p.StandardOutput.ReadToEnd()
'9.6.0 i386\n'
>>> p.ExitCode
0
>>> 

答案 1 :(得分:1)

您可以使用ironpython中的大多数标准os模块。

import sys
sys.path.append path('...pathtocpythonlib......')
import os

答案 2 :(得分:0)

考虑一下这个C# Interactive Shell ....不确定它是否支持shell中的IronPhython,但Mono如你所知。

答案 3 :(得分:0)

这里有一个部分子流程模块实现:

http://www.bitbucket.org/jdhardy/code/src/tip/subprocess.py

该模块(此时,2010年6月)仅支持重定向STDIO管道(例如,您不能提供自己的文件类对象来填充输出或流输入),但基础知识足以获得由