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

有帮助吗?

解决方案

我找到了答案。感谢“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
>>> 

其他提示

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

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top