IronPythonとMonoを試してみたいと思います。具体的には、sysadminタスクを実行します。これは多くの場合、OSコマンドの実行を意味します。CPythonでは、このようなタスクにサブプロセスモジュールを使用します。ただし、IronPython(v2.0.1、Mono 2.4、Linux)には、サブプロセスモジュールはありません。'os'モジュールすら存在しないようです。そのため、os.system()を使用できません。CPythonで通常「サブプロセス」または「os.system()」を使用するタスクを実行するIronPythonの方法は何でしょうか?
4307 次
4 に答える
13
答えを見つけました。「IronPythonクックブック」に感謝します。このテーマの詳細については、 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内からほとんどの標準OSモジュールを使用できます。
import sys
sys.path.append path('...pathtocpythonlib......')
import os
于 2009-05-01T08:37:55.313 に答える
0
このC#インタラクティブシェルも検討してください....シェルで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 に答える