[Python-es] Wrapper para ficheros (i.e. file objects)

Javier Collado javier.collado en gmail.com
Mie Ene 20 15:34:57 CET 2010


Hola,

No lo he usado, pero creo que este paquete puede ayudar:
http://pypi.python.org/pypi/filelike/0.3.5p1

Un saludo,
    Javier

El día 20 de enero de 2010 15:28, lasizoillo <lasizoillo en gmail.com> escribió:
> El día 19 de enero de 2010 21:09, Olemis Lang <olemis en gmail.com> escribió:
>> Alguien conoce si existen wrappers (preferentemente en stdlib ;o) para
>> obtener implementaciones de los métodos `readline`, `next`, ... a
>> partir de un objeto fichero q solo tenga el método `read` ?
>>
>
> Puedes hacerte algo simplon como esto:
>
> #kk.py
> class Wrapper(object):
>    def __init__(self, reader, separator='\n'):
>        self.reader = reader
>        self.separator = separator
>        self.buffer = ""
>
>    def readlines(self):
>        data = self.reader.read(1024)
>        while data:
>            slices = (self.buffer + data).split(self.separator)
>            for line in slices[0:-1]:
>                yield line + self.separator
>            self.buffer = slices[-1]
>            data = self.reader.read(1024)
>        yield self.buffer
>
> if __name__ == '__main__':
>    f = open("kk.py")
>    w = Wrapper(f)
>    for i in w.readlines():
>        print ">>", i,
>
>
> También podrias modificar la clase esa para usarla como un mixin. Con
> eso ya tendrías tu wrapper para añadir la funcionalidad de leer
> lineas. No conozco nada en el sistema base que te lo dé ya hecho como
> hay para hacer diccionarios y demás, pero como ves tampoco cuesta
> mucho hacerlo.
>
> Un saludo:
>
> Javi
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



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