Problema leyendo bytes deun fichero remoto

Joan Carles Jimenez jjcarles en terra.es
Jue Mayo 17 19:51:43 CEST 2007


Me respondo a mi mismo.

        La solución consiste en establecer el timeout de la clase socket:

        import urllib2
        import socket   
        socket.setdefaulttimeout(120
        f = urllib2.urlopen('http://www.python.org/')
        print f.read(100)

On Thursday 17 May 2007 18:46, Joan Carles Jimenez wrote:
> Hola de nuevo.
>
> 	Supongo que el "read" va leyendo hasta llegar al límite especifcado o
> hasta encontrar un final de fichero. Pero diria que en mi caso el problema
> está en que no llego al límite y tampoco recibo el final de fichero. Por
> poner un ejemplo:
>
> 	import urllib2
> 	f = urllib2.urlopen('http://www.python.org/')
> 	print f.read(100)
>
> 	Si se corta la comunicación antes de llegar a los 100 bytes, el print
> nunca se ejecuta. Por eso queria saber si se puede asignar de alguna manera
> un timeout para que mi función no se cuelgue.
>
> Gracias.
>
> On Wednesday 16 May 2007 19:44, tny wrote:
> > El mié, 16-05-2007 a las 18:13 +0200, Joan Carles Jimenez escribió:
> > > Hola.
> > >
> > > 	Tengo una función que se encarga de leer bloques de 100 bytes de un
> > > fichero que se encuentra en una máquina remota. El proceso analiza
> > > estos 100 bytes y si obtengo los resultados que deseo, no continuo la
> > > descarga, en caso contrario, descargo los siguientes 100 bytes. El
> > > hecho de que vaya analizando el fichero en bloques me impide saber el
> > > tamaño total de este.
> > >
> > > 	La intrucción que utilizo para leer los bytes es "xxxx.read(100)". El
> > > problema que tengo es que si el ultimo bloque no tiene 100 bytes, el
> > > read se queda esperando, y como no hay mas datos para descargar, el
> > > proceso se queda parado. ¿Existe alguna manera de asignar un timeout al
> > > read() de tal forma que finalize la espera aunque no tenga los 100
> > > bytes descargados?
> > >
> > > Gracias.
> >
> > ???
> > Yo no tengo ese problema...
> > Lee lo que "haiga" hasta esa cantidad, si hay menos no se me queda
> > esperando...
> > Mira a ver si es otra cosa.

-- 
Joan Carles Jimenez
jjcarles en terra.es
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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