Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: rubia28 en 3 Marzo 2021, 13:15 pm



Título: Ayuda con subprocess.Popen stdout=subprocess.PIPE
Publicado por: rubia28 en 3 Marzo 2021, 13:15 pm
Buenos días a todos,

Estoy empezando con la ejecución de programas en python y no consigo entender correctamente que es lo que realiza el programa siguiente..

Código
  1. import subprocess
  2.  
  3. # pipe.py
  4.  
  5. p = subprocess.Popen(["echo","Ejemplo de procesos en python.."], stdout=subprocess.PIPE)
  6.  
  7. print (p.communicate())
  8.  

Por las pruebas de ejecución que he realizado a través de Linux, veo que el programa imprime por pantalla un mensaje en el terminal.. pero no consigo entender realmente que función hace stdout=subprocess.PIPE, ni porque a la hora de ejecutar el programa en el IDE imprime por pantalla (b'Ejemplo de procesos en python..\n', None). Entiendo que el primer argumento de Popen "echo" es un comando de Linux que imprime la salida por pantalla de la frase "Ejemplo de procesos en python..", pero no entiendo porque en la ejecución aparece el texto entre parentesís, la b en el inicio, el salto de línea \n y el None al final de la ejecución... He buscado información sobre esto pero no encuentro nada para poder entenderlo correctamente.. ¿Alguien puede ayudarme?

Mil gracias por la ayuda, saludos.


Título: Re: Ayuda con subprocess.Popen stdout=subprocess.PIPE
Publicado por: tincopasan en 9 Marzo 2021, 04:28 am
no voy a perder tiempo explicando algo que está documentado.
https://docs.python.org/es/3.9/library/subprocess.html (https://docs.python.org/es/3.9/library/subprocess.html)
puse la referencia en español por las dudas no leas lo mínimo de inglés.