Ejecutar comandos externos de forma asincrónica desde Python
La ejecución de comandos externos de forma asincrónica es un requisito común en escenarios de secuencias de comandos. En Python, esto se puede lograr mediante varios enfoques.
Una opción es usar os.system, que permite ejecutar comandos sin bloqueo agregando un signo (&) al final. Sin embargo, este método se considera obsoleto y no se recomienda debido a posibles problemas con la interacción del shell.
Un enfoque más óptimo es utilizar subprocess.Popen, que proporciona una API más completa y sólida para administrar procesos externos. Con Popen, los comandos se pueden ejecutar de forma asincrónica, lo que permite que el script de Python continúe ejecutándose mientras el comando externo se ejecuta en segundo plano.
from subprocess import Popen
p = Popen(['watch', 'ls']) # something long running
# ... do other stuff while subprocess is running
p.terminate()
En este ejemplo, se crea la instancia de Popen, pasando el comando y sus argumentos. Luego, el script de Python puede continuar con otras tareas mientras el comando externo se ejecuta de forma asincrónica. Más adelante, se puede consultar el estado de la instancia de Popen (p. ej., usando poll()), comunicarse con ella (p. ej., a través decommunication()) o cancelarla.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3