[pyar] Empiezo una implementación: tail -f like software

Juanjo Conti jjconti en gmail.com
Mar Ago 31 19:10:07 ART 2010


2010/8/31 Eliseo Ocampos <roskoff en gmail.com>

> 2010/8/31 Eliseo Ocampos <roskoff en gmail.com>:
> > Juanjo,
> >
> >   Probé el script, así como está me tira este error:
> >
> > [G:eocampos/Desktop]|56> python bee-1.py log.txt
> > Process Process-1:
> > Traceback (most recent call last):
> >  File "C:\Python27\lib\multiprocessing\process.py", line 232, in
> _bootstrap
> >    self.run()
> >  File "C:\Python27\lib\multiprocessing\process.py", line 88, in run
> >    self._target(*self._args, **self._kwargs)
> >  File "G:\eocampos\Desktop\bee-1.py", line 7, in read_file
> >    fd.seek(0,2)
> > ValueError: I/O operation on closed file
> >
> > Al parecer dentro del otro proceso no reconoce o se cierra fd, probé
> > pasándole el nombre del archivo a read_file y abrirlo ahí dentro ya
> > que ahí es donde lo estamos leyendo.
> >
> > Te paso el archvo modificado, fijate en la linea 7 y 34
> >
> > Saludos!
> >
> > Eliseo.
> >
> > P.D.: Estoy en un Windows Vista con Python 2.7
> >
>

Gracias, debe ser así en Windows. Cambio a la forma en que vos me pasaste.

Ya que estoy mando una versión ya más usable que terminé hoy a la siesta.

Pueden probarla ejecutando:

$ while true; do sleep 1; date >> log.txt; done &
$ while true; do sleep 2; echo aaaaaaaaaaaaaaa >> log.txt; done &
$ while true; do sleep 5; echo bbbbbbbbbbbbbbb >> log.txt; done &

// para generar algunos datos

y

python bee.py log.txt

Ejemplo:

mié sep  1 00:02:02 CEST 2010
bbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaa
mié sep  1 00:02:03 CEST 2010
mié sep  1 00:02:04 CEST 2010
aaaaaaaaaaaaaaa
mié sep  1 00:02:05 CEST 2010
mié sep  1 00:02:06 CEST 2010
aaaaaaaaaaaaaaa
mié sep  1 00:02:07 CEST 2010
bbbbbbbbbbbbbbbbbbb
mié sep  1 00:02:08 CEST 2010
aaaaaaaaaaaaaaa
                                                     <-- aca aprieto Enter
show aaaaaaaa                            <-- y tipeo un comando + Enter
aaaaaaaaaaaaaaa
aaaaaaaaaaaaaaa
aaaaaaaaaaaaaaa
aaaaaaaaaaaaaaa
aaaaaaaaaaaaaaa
aaaaaaaaaaaaaaa

El comando show recibe como argumento una regex que es buscando contra la
línea, si coincide, la línea se muestra.

El comando showall elimina todos los filtros.

Mañana le agrego colores. Qué les parece útil como comando?

show REGEX color COLOR

Errores que me gustaría corregir:

* Ctrl-C termina el programa con un feo traceback.
* Si tiramos un comando sin el Enter inicial creashea :-/

-- 
Juanjo Conti
blog: http://www.juanjoconti.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100901/e90342f0/attachment.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: bee.py
Type: application/x-python
Size: 1269 bytes
Desc: no disponible
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100901/e90342f0/attachment.bin>


More information about the pyar mailing list