質問

IronPythonとMonoを試してみたいと思います。特に、sysadminタスクを実行します。多くの場合、OSコマンドを実行することを意味します。 CPythonでは、このようなタスクにサブプロセスモジュールを使用します。 しかし、IronPython(v2.0.1、Mono 2.4、Linux)にはサブプロセスモジュールはありません。 「os」モジュールさえないようです。したがって、os.system()は使用できません。 IronPythonでCPythonで通常「サブプロセス」または「os.system()」を使用するタスクを実行する方法は何ですか?

役に立ちましたか?

解決

答えが見つかりました。 「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 .... notシェルでIronPhythonをサポートしているかどうかを確認しますが、Monoはご存知のとおりです。

ここには部分的なサブプロセスモジュールの実装があります:

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

モジュール(現時点では2010年6月)は、STDIOパイプのリダイレクトのみをサポートしています(たとえば、独自のファイルのようなオブジェクトを提供して出力を埋めたり、入力をストリーミングしたりすることはできません)が、基本はこれで十分です

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top