RE: [Python-es] enviar datos a la entrada estándar

Hernán Martínez Foffani hernan en orgmf.com.ar
Lun Jun 7 13:26:04 CEST 2004


Darío López Llueca escribio:
>>>> Alguien sabría decirme como podría hacer el equivalente a la
>>>> siguiente orden unix en python?
>>>>
>>>> echo "lalalalalal" > /dev/stdin
>>>
>>> Ernie te dio una respuesta pero el problema está en la pregunta.
>>> ¿Realmente quieres (y puedes) escribir en el dispositivo de entrada
>>> estandar? Si el comando echo que escribiste realmente te funciona
>>>    haz algo como: >>> f = file("/dev/stdin", "w")
>>>    >>> f.write("lalalalala\n")
>>>    >>>
>> Si que funciona, pero la verdad es que no estoy muy seguro de que sea
>> el resutlado que quiero :), pq me imprime por pantalla el mensaje y
>> no se si debiera de hacer eso. De todas formas, yo quiero hacer algo
>> más universal. Con esto quiero decir, que funcione tanto en linux
>> como en windows. Y la solución que me planteas, solo funciona en
>> Linux :(
>> Me respondo a mí mismo: NO funciona :D

Te habíamos respondido a tu pregunta ;-)
No me extraña que no funcione a todos nos había parecido algo
rara tu pregunta.
/dev/stdin representa al disposito de entrada estandar y no está
disponible en Windows. En un entorno CGI como pretendes para tu
asignatura tu aplicación debe usar los *descriptores* stdin/stdout
y no los *dispositivos*.

> de todas formas... os planteo la siguiente cuestión..
> esto haciendo un servidor web en python, porque me lo piden para una
> asignatura. La cuestión es que al recibir un POST, debería enviar al
> STDIN lo que recibo de un post, para que luego, mediante un CGI,
> escrito en python mismamente, poder hacer algo del tipo:
>
> #!/usr/bin/env python
> print "Content-type: text/html\n"
> print
> print "<html><head><title>lalalal</title></head><body>" + raw_input()
> + "</body></html>"
>
> Espero que con esto se entienda mejor lo que quiero hacer.

Ahora si.
Prueba como dijo Chema, con sys.stdin.read()

-H.




Más información sobre la lista de distribución Python-es