Pergunta

Eu gostaria de dar IronPython e Mono uma tentativa. Especificamente fazendo tarefas sysadmin. Que muitas vezes significa comandos do sistema operacional em execução. Em CPython eu uso o módulo subprocesso para tais tarefas. Mas, em IronPython (v2.0.1, Mono 2.4, Linux) não existe um módulo subprocesso. Parece não há sequer um módulo 'os'. Então eu não posso usar os.system (). Qual seria a maneira IronPython de fazer tarefas que você usaria normalmente 'subprocesso' ou 'os.system ()' no CPython?

Foi útil?

Solução

Eu encontrei uma resposta. Graças ao "IronPython Cookbook". É possível encontrar mais informações sobre este assunto lá: 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
>>> 

Outras dicas

Você pode usar a maioria dos módulos os padrão de dentro ironpython.

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

C # Interativo Shell demais .... não certeza se ele suporta IronPhython na casca, mas Mono faz como você sabe.

Há uma implementação parcial módulo subprocesso aqui:

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

O módulo (neste momento, junho de 2010) é suporta apenas redirecionando tubos STDIO (como, você não pode fornecer seu próprio arquivo-como objetos a ser preenchido com saída ou para transmitir intput), mas os princípios são o suficiente para obter by.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top