14.05.2013 Views

Booklet A4/A5 - PET: Python Entre Todos - Python Argentina

Booklet A4/A5 - PET: Python Entre Todos - Python Argentina

Booklet A4/A5 - PET: Python Entre Todos - Python Argentina

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5 Fuse: El API<br />

Fuse: El API<br />

• Podemos acceder a las librerías del sistema para crearlos,<br />

por ej el stdlib de python.<br />

• No tendremos que lidear con kernel panics, reinicios,<br />

utilización de maquinas virtuales para las pruebas, etc.<br />

• Mayor portabilidad, ya que fuse existe en diversos sistemas<br />

operativos.<br />

• Podemos ejecutar nuestros filesystem con permisos de<br />

usuario.<br />

• Facil debugging de los mismos.<br />

El API de fuse funciona por callbacks. Por ejemplo: cuando nosotros accedemos a un<br />

directorio, en nuestra aplicación se llama a getattr, opendir, readdir, releasedir.<br />

create(path, mode) # creación de un archivo<br />

truncate(path, mode) # achicar o agrandar el tamaño de un archivo<br />

open(path, mode) # apertura de un archivoError: BadDrawable<br />

write(path, data, offset) # escritura de un archivo<br />

read(data, lenght, offset) # lectura de un archivo<br />

release(path) # liberación de un archivo<br />

fsync(path) # sincronización de un archivo<br />

chmod(path, mode) # cambio de permisos<br />

chown(path, uid, gid) # cambio de propietario<br />

mkdir(path, mode) # creación de directorio<br />

unlink(path) # eliminación de un archivolink<br />

rmdir(path) # eliminacón de un directorio<br />

rename(opath, npath) # renombrado<br />

link(srcpath, dstpath) # creación de un link<br />

Como se usa<br />

Este es un ejemplo mínimo de lectura y escritura de un archivo, hagamos de cuenta<br />

que estos métodos están en un objeto que tiene un diccionario llamado items con el<br />

path como key y los datos de este como valor<br />

# lectura<br />

def read(self, path, offset, length):<br />

<strong>Python</strong> <strong>Entre</strong> <strong>Todos</strong> (número 3, Julio 2011) — http://revista.python.org.ar

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!