Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

miércoles, 7 de enero de 2015

Código para borrar todos los archivos de una carpeta en Python

El siguiente script recibe como parámetro la carpeta a la que se le quieren eliminar los archivos:

import sys
import os
from os import listdir
from os.path import isfile, join

def delete_Files(folder):
      files_dump = [join(folder, c) for c in listdir(folder)]
      files_dump = filter(lambda c: isfile(c), files_dump)
      [os.remove(c) for c in files_dump]

if __name__ == "__main__":
# sys.argv[0] contiene el nombre del script
# sys.argv[1] contiene el primer parámetro: 
# la carpeta que se desea vaciar
      delete_Files(sys.argv[1])
      print 'Files Deleted!!'


Lo he probado con Python 2.7.8 desde Python Tools for Visual Studio 2013. Se debe tener cuidado porque los archivos son eliminados de forma definitiva, no van a la papelera de reciclaje.

La funcion __name__ puede modificarse para que elimine los archivos de todas las carpetas que se le pasen como argumentos, y sólo en caso de que éstas existan:

if __name__ == "__main__":
      [delete_Files(c) for c in sys.argv[1:] if os.path.exists(c)]
      print 'Files Deleted!!'


Para ingresar los argumentos del script en Visual Studio, se debe ir a Proyecto->Propiedades: