我想试试 IronPython 和 Mono。专门做系统管理员任务。这通常意味着运行操作系统命令。在 CPython 中,我使用 subprocess 模块来完成此类任务。但是在 IronPython (v2.0.1, Mono 2.4, Linux) 中没有子进程模块。似乎甚至没有“操作系统”模块。所以我不能使用 os.system()。IronPython 在 CPython 中通常使用“subprocess”或“os.system()”来执行任务的方式是什么?
问问题
4307 次
4 回答
13
我找到了答案。感谢“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
>>>
于 2009-05-03T09:09:51.350 回答
1
您可以使用 ironpython 中的大多数标准操作系统模块。
import sys
sys.path.append path('...pathtocpythonlib......')
import os
于 2009-05-01T08:37:55.313 回答
0
也考虑一下这个C# Interactive Shell ....不确定它是否在 shell 中支持 IronPhython,但 Mono 确实如您所知。
于 2009-05-13T13:10:16.190 回答
0
这里有一个部分子流程模块实现:
http://www.bitbucket.org/jdhardy/code/src/tip/subprocess.py
该模块(此时,2010 年 6 月)仅支持重定向 STDIO 管道(例如,您不能提供自己的类似文件的对象来填充输出或流式输入),但基础知识已经足够了。
于 2010-06-15T03:01:49.847 回答