Listar archivos

Jose Luis Dominguez NONLILLY DOMINGUEZ_JOSE_LUIS_NONLILLY en LILLY.COM
Mie Abr 26 16:44:01 CEST 2006


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.

Aquí está el código

# -*- coding: cp1252 -*-
import os
ignorar =[".cpp", ".h", ".py"] 
def borrado(arg, dirname, names):
    dir = os.getcwd()
    os.chdir(dirname)
    try:
            for fi in os.listdir("."):
                borrar=True
                for ig in ignorar:
                        if not fi.find(ig)==-1:
                                print "No se borra", fi
                                borrar=False
                if borrar:
                        #Se comprueba que es un fichero
                        st=os.stat(fi)   #Se obtienen las estadísticas
                        if (st[6]>0): #Se compara el tamaño
                                #os.remove(fi)
                                print "borrando",fi 
                                os.remove(fi)
 
 
    finally:
            os.chdir(dir)

#os.path.walk('.',borrado,None)



Como se podría hacer una solución algo más profesional.

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"

Muchas gracias a todos 




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