Pregunta

Me gustaría probar IronPython y Mono. Específicamente haciendo tareas de administrador de sistemas. Lo que a menudo significa ejecutar comandos de sistema operativo. En CPython utilizo el módulo de subproceso para tales tareas. Pero en IronPython (v2.0.1, Mono 2.4, Linux) no hay módulo de subproceso. Parece que ni siquiera hay un módulo 'os'. Entonces no puedo usar os.system (). ¿Cuál sería la forma de IronPython de hacer las tareas que normalmente usaría 'subprocess' u 'os.system ()' para en CPython?

¿Fue útil?

Solución

He encontrado una respuesta. Gracias al " IronPython Cookbook " ;. Uno puede encontrar más información sobre este tema allí: 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
>>> 

Otros consejos

Puede usar la mayoría de los módulos de sistema operativo estándar desde ironpython.

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

Considere esto C # Interactive Shell también ... no seguro si es compatible con IronPhython en la cáscara, pero Mono hace lo que sabes.

Aquí hay una implementación parcial del módulo de subproceso:

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

El módulo (en este momento, junio de 2010) solo admite la redirección de tuberías STDIO (como en, no puede proporcionar sus propios objetos de tipo de archivo para rellenar con salida o para transmitir la entrada), pero los conceptos básicos son suficientes para obtener por.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top