Tutoriales

Subproceso de Python. Ejemplo de Open

El subproceso de Python es uno de los módulos útiles para ejecutar diferentes comandos de Shell, procesos y ejecutar otro script o archivo ejecutable usando un script de Python. También se puede utilizar para redirigir datos de un proceso a otro y manejar errores generados por procesos secundarios. El módulo de subproceso tiene muchas categorías para diversos propósitos. La clase «subprocess.Popen» es una de las clases de este módulo y se utiliza para interactuar con procesos externos y realizar diferentes tipos de tareas entre procesos. Este tutorial muestra varios usos de la categoría «subprocess.Popen» en scripts de Python.

Temas de contenido:

  1. Ejecute comandos simples de Linux
  2. Ejecutar un comando usando datos de entrada
  3. Ejecutar secuencia de comandos de Python
  4. Manejar errores de procesos secundarios
  5. Devuelve el código de Subprocess.Popen
  6. Redirigir la salida de una subrutina a un archivo
  7. Multiprocesamiento usando Subprocess.Popen
  8. Manejar flujos de entrada y salidas
  9. Controlar tiempos de espera y retrasos
  10. Leer entrada de flujo

Ejecute comandos simples de Linux

El comando «fecha» se utiliza para mostrar la fecha y hora actuales del sistema. Cree un archivo Python usando el siguiente script, que crea un subproceso que ejecuta el comando «fecha» e imprime el resultado del comando:

#Importar módulo

importar subproceso

#Definir una instrucción para la subrutina

#Utilice la función Popen() para abrir el proceso

producción = subproceso.Poppen([«date»], salida estándar=subproceso.tubería)

#Recuperar resultados y errores comunicándose con el proceso

salida estándar, Error estándar = producción.comunicar()

#Imprimir salida

Imprimir(salida estándar.descodificación())

Producción:

Después de ejecutar el script anterior, aparecerá el siguiente resultado:

Ve arriba

Ejecutar un comando usando datos de entrada

El comando «wc» con la opción «-c» se utiliza para contar el número total de caracteres en el valor de cadena proporcionado por el comando. Utilice el siguiente script para crear un archivo Python. El script utiliza la función Popen() para crear un subproceso para ejecutar el comando «wc -c». Después de ejecutar el script, obtenga el valor de la cadena del terminal e imprima el número total de caracteres de la cadena de entrada en la salida.

Producción:

Para los valores de entrada de «Ejemplos de subprocesos de Python», se mostrará el siguiente resultado:

Ve arriba

Ejecutar secuencia de comandos de Python

Utilice el siguiente script para crear un archivo Python llamado «sum.py» que calcule la suma de dos números proporcionados como argumentos de la línea de comando:

suma

Producción:

Después de ejecutar el script anterior, aparecerá el siguiente resultado:

Ve arriba

`

Manejar errores de procesos secundarios

Utilice el siguiente script para crear un archivo Python que utilice un bloque «try-except» para manejar errores en el proceso secundario. Los comandos se obtienen del usuario y los ejecuta el proceso hijo. Si el usuario emite algún comando no válido, se mostrará un mensaje de error.

Producción:

Si el comando «pwd» se trata como entrada para un comando válido, aparecerá el siguiente resultado:

p4-1

Si el comando «usr» se considera entrada para un comando válido, aparecerá el siguiente resultado:

p4-2

Ve arriba

Devuelve el código de Subprocess.Popen

Utilice el siguiente script para crear un archivo Python que ejecute el comando «ls» a través de un subproceso para obtener una lista de todos los archivos Python en la ubicación actual. El script espera a que se complete el proceso secundario e imprime el código de retorno.

Producción:

Después de ejecutar el script anterior, aparecerá un resultado similar:

Ve arriba

Redirigir la salida de una subrutina a un archivo

Utilice el siguiente script para crear un archivo Python y escribir la salida del subproceso en un archivo de texto. Los comandos ejecutados por el proceso hijo se toman del usuario.

#Importar módulo

importar subproceso

#Definir nombre de archivo

Nombre del archivo = «Archivo de salida.txt»

#Ejecutar comando ping

instrucción = ingresar(«Ingrese el comando ping:»)

# Según la entrada obtenida por segmentación espacial

parámetro = instrucción.Dividir()

#Escribir la salida del comando en un archivo

y Abierto(Nombre del archivo, 'w') como Datos resultantes:

proceso = subproceso.Poppen(parámetro,salida estándar=Datos resultantes)

#Espera a que se complete el proceso.

código de retorno = proceso.esperar()

Producción:

Según el siguiente resultado, «ping -c 3 www.google.com«El comando se toma del usuario. El comando «cat» se utiliza para mostrar el contenido del archivo escrito por la subrutina:

Ve arriba

Multiprocesamiento usando Subprocess.Popen

Utilice el siguiente script para crear un archivo Python que utilice subprocesos para mostrar el uso del multiprocesamiento. Aquí, una función llamada display_msg() se llama varias veces mediante multiprocesamiento.

Producción:

Después de ejecutar el script anterior, aparecerá el siguiente resultado:

Ve arriba

Manejar flujos de entrada y salida

Antes de crear el script Python de este ejemplo, primero cree un archivo de texto llamado «test.txt», que contenga el siguiente contenido.

prueba.txt

Perla

Pitón

intento

PHP

Utilice el siguiente script para crear un archivo Python que utilice un subproceso para leer el contenido del archivo «test.txt» y utilice otro subproceso para buscar palabras específicas en el archivo de texto. Aquí, se busca la palabra «python» en el «archivo test.txt» que contiene la palabra.

Producción:

El siguiente resultado aparece después de ejecutar el script:

Ve arriba

Usar temporizadores para controlar procesos secundarios

Utilice el siguiente script para crear un archivo Python que utilice un temporizador para ejecutar comandos a través de un subproceso. Aquí, el bloque «try-except» se usa para iniciar el temporizador y el bloque «finalmente» se usa para cancelar el temporizador.

Producción:

El siguiente resultado aparece después de ejecutar el script:

Ve arriba

Leer entrada de flujo

Cree un archivo Python, use un bucle » while » para leer el contenido generado por el subproceso y almacene el contenido en una variable. El contenido de esta variable se imprimirá más adelante. Aquí, el comando «curl» se utiliza en el proceso hijo. www.google.com URL.

#Importar módulo

importar subproceso

#definir directiva

instrucción = [«curl», «www.example.com»]

pag = subproceso.Poppen(instrucción, salida estándar=subproceso.tubería,

Error estándar=subproceso.tubería, texto=real>

#Inicializar variables de salida

producción = «»

a pesar de real:

#Leer la salida del proceso línea por línea

porque = pag.salida estándar.linea de lectura()

# Terminar el ciclo cuando finaliza el proceso hijo

si No existir:

descansar

producción = salida+en

#Imprimir la línea

Imprimir (producción)

#Obtenga el código de retorno una vez completado el procesamiento

código de retorno = pag.esperar()

#Imprimir código de transferencia

Imprimir («Código de retorno:», código de retorno)

Producción:

La última parte de los tres resultados se muestra a continuación. El código de retorno después de que se completa el proceso hijo es 0:

Ve arriba

en conclusión

Este tutorial utiliza múltiples scripts de Python para demostrar diferentes usos del subproceso de Python.Popen(), lo que ayudará a los usuarios de Python a comprender el uso básico de la función.

LEER  Cómo eliminar el retorno de carro en Linux o Unix

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba