Listar archivos

Fernando Canizo conan en lugmen.org.ar
Mie Abr 26 19:55:18 CEST 2006


El 26/abr/2006 a las 11:44 -0300, Jose me decía:
> Hola a todos.
> 
> He realizado un programa para que me borre todos los archivos menos los 
> que tengan "*.cpp y *.h"
> El scrip  funciona pero no me acaba de gustar la solución que implementé.
> Para distinguir entre lo que son archivos y directororios he usado 
> os.stat() y luego miraba el campo que indica el tamaño.
> [cortado]
> Como se podría hacer una solución algo más profesional.

Para averiguar si un archivo es un directorio no deberías mirar su
tamaño, sino usar os.path.isdir(), te recomendaría que siempre
tuvieras a mano la "python library reference":
http://docs.python.org/lib/contents.html ya que es realmente muy útil
cuando uno busca qué función le podría servir para hacer X cosa.

No sé si sería más profesional, pero me parece que os.path.walk() es
mucho más apropiada para lo que deseás hacer.

> Además el algorimo falla si el archivo contiene .h o .cpp por el medio y 
> no como extension
> No borra el documento    "prueba.h.old"

En cuanto a conservar también esos archivos sólo puedo decirte que el
software no hace magia, hace lo que le decís que haga. Si querés
conservar también esos archivos se lo tenés que especificar.
Posiblemente te sirva usar el módulo 're' (regular expressions) si se
complican los posibles patrones de nombres de archivos que poseas.

Sin embargo es algo extraña la tarea que estás realizando, nunca he
necesitado armar un script raro para borrar cosas de un directorio de
desarrollo.

-- 
Fernando Canizo - http://www.lugmen.org.ar/~conan/
Más polvo que indio que va al último




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