duda sobre consola interactiva

4 views
Skip to first unread message

Pedro Romero (itobest)

unread,
Mar 22, 2014, 7:32:46 PM3/22/14
to python-v...@googlegroups.com
buenas noches compañeros me encuentro practicando con la interacccion con la consola y se me ha presentado un pequeño problema al ejecutar:

>>> Popen(["sudo", "pacman", "-S", "dnscrypt-proxy"],  stdout=PIPE, stderr=PIPE)
 ó
>>> Popen(["sudo", "pacman", "-S", "dnscrypt-proxy"],  stdout=PIPE, stderr=PIPE).communicate()
 y no me arroja ningun resultado...

dado que alli la consola hace una pregunta:

warning: dnscrypt-proxy-1.3.3-3 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Packages (1): dnscrypt-proxy-1.3.3-3

Total Installed Size:   0.41 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n]

he intentado usar la libreria de ipython pero no consigo una documentacion de como usar el camando "!" desde python sin tener ue crear un scritps en ipython solo usar python... si alguien puede ayudarme estaria agradecido llevo dias en este detalle :/ discules las molestias, buenas noches

Jesús Gómez

unread,
Mar 23, 2014, 10:29:04 AM3/23/14
to python-venezuela
El 22 de marzo de 2014, 19:02, Pedro Romero (itobest) <itob...@gmail.com> escribió:
buenas noches compañeros me encuentro practicando con la interacccion con la consola y se me ha presentado un pequeño problema al ejecutar:

>>> Popen(["sudo", "pacman", "-S", "dnscrypt-proxy"],  stdout=PIPE, stderr=PIPE)
 ó
>>> Popen(["sudo", "pacman", "-S", "dnscrypt-proxy"],  stdout=PIPE, stderr=PIPE).communicate()
 y no me arroja ningun resultado...

dado que alli la consola hace una pregunta:


No tengo pacman para hacer la prueba (¿Archlinux?). Una pregunta ¿A qué te refieres con que la consola hace una pregunta?

 1. A que la consola de Python hace esa pregunta justo después de ejecutar el Popen que propones.
 2. A que la consola del sistema sí hace la pregunta, a diferencia de la de Pytho que, y cito: "... no me arroja resultado".

warning: dnscrypt-proxy-1.3.3-3 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Packages (1): dnscrypt-proxy-1.3.3-3

Total Installed Size:   0.41 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n]



Según la docu de commuicate, el devuelve una tupla con (stdoutdata, y stderrdata). Tal vez puedas ver los mensajes de pacman revisando esa tupla::

    >>> p = Popen(["sudo", "pacman", "-S", "dnscrypt-proxy"],  stdout=PIPE, stderr=PIPE).communicate()
    >>> print p[1]
    >>> print p[0]

Y si entiendo bien el "PIPE", lo que escribas en tu stdout, lo recibirá el pacman por su stdin. Así que si quieres responderle "Y",  creo que pudiera funcioar::

    >>> print "Y"

 
he intentado usar la libreria de ipython pero no consigo una documentacion de como usar el camando "!" desde python sin tener ue crear un scritps en ipython solo usar python... si alguien puede ayudarme estaria agradecido llevo dias en este detalle :/ discules las molestias, buenas noches

--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un mensaje de correo a python-venezue...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Pedro Romero (itobest)

unread,
Mar 23, 2014, 10:58:48 AM3/23/14
to python-v...@googlegroups.com

Buenos días gracias por responder, pacman me responde con esa pregunta, y con communicate me recibe la tupla después de que termina el proceso hijo, no es interactiva... No se si me expreso bien...  No es una comunicación en tiempo real entre la pregunta de pactan y la respuesta... Gracias por la ayuda

Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.

Eduard Lucena

unread,
Mar 24, 2014, 9:15:54 PM3/24/14
to python-v...@googlegroups.com
Creo que lo mejor en tu caso sería pasarle el parámetro "y" al pacman:

Popen(["sudo", "pacman", "-Sy", "dnscrypt-proxy"],  stdout=PIPE, stderr=PIPE)

No estoy seguro si funciona, pues no tengo arch instalado y hace mucho que no lo uso, pero en teoría debería funcionar.


Saludos,
=======================
             Eduard Lucena
          Cel:=0424-5216478
     GNU/Linux User #403161
          Ubuntu User #8749
=======================

Wil Alvarez

unread,
Mar 24, 2014, 9:34:33 PM3/24/14
to python-v...@googlegroups.com

El -y lo que hace es decirle a pacman que traiga una copia fresca de la lista de paquetes. Para que no pida confirmación pueden usar --noconfirm.

Saludos

Pedro Romero (itobest)

unread,
Mar 24, 2014, 9:39:16 PM3/24/14
to python-v...@googlegroups.com
buenas noches muchas gracias por tu ayuda... estube intentando al azar con diferentes modulos y di con este muchas gracias por tu ayuda...

>>> check_call("sudo pacman -Sy dnscrypt-proxy", shell=True)

Pedro Romero (itobest)

unread,
Mar 25, 2014, 11:11:11 PM3/25/14
to python-v...@googlegroups.com
muchisimas gracias hermano eso si me ayudara mucho...
Reply all
Reply to author
Forward
0 new messages