send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Archivos sin uso en un proyecto

  • 3 Respuestas
  • 1686 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado deni_celine

  • *
  • Underc0der
  • Mensajes: 36
  • Actividad:
    0%
  • Reputación 0
  • un susurro con la fuerza de mil gritos
    • Ver Perfil
« en: Marzo 06, 2014, 05:36:07 pm »
Suponiendo que estamos en un proyecto web, y ahi muchso archivos que no utilizamos (imagenes, flash, etc) .. y nos da "flojera" ir haciendo una busqueda una por una para ver si se esta utilizando en alguna parte o no, puedes hacer un script que te simplifique la vida, o simplemente pq quieres hacer un script xD solo genere un listado para ver cuales son los archivos que no estaban mencionados en los fuentes, pero tomando esta idea podrías borrarlas o mejor aún moverlas a otro directorio de respaldo
aqui os dejo por si a alguien le sirve o quiere aportar  ;)

Código: Python
  1. import os,datetime,shutil
  2. dir_explorar = "/var/www/mysitio"
  3. #Crea lista de imagenes
  4. print "Creando listado de imagenes..."
  5. img = []
  6. p_img = []
  7. for root, dirs, files in os.walk(dir_explorar):
  8.                 for f in files:
  9.                                 ext = f.split(".")[-1]
  10.                                 if  ext in ("jpg","gif","png","swf","jpeg","pdf"):
  11.                                                 img.append(f)
  12.                                                 p_img.append(os.path.join(root,f))
  13.  
  14. #Recorrer directorio para buscar las imagenes
  15. print "Buscando en los archivos..."
  16. en_uso = []
  17.  
  18. for root, dirs, files in os.walk(dir_explorar):
  19.                 for f in files:
  20.                                 f = os.path.join(root,f)
  21.                                 ext = f.split(".")[-1]
  22.                                 if  ext in ("php","tpl","js","css"):
  23.                                                 #print "-buscando en",f
  24.                                                 with open(f,"r") as file:
  25.                                                         texto2 = file.read()
  26.                                                         cont = 0
  27.                                                         for i in img:
  28.                                                                         if (texto2.find(i) > 0):
  29.                                                                                         en_uso.append(p_img[cont])
  30.                                                                         cont = cont+1
  31.  
  32. #Obtneer img en deshuso desde las img en uso e_e
  33. print "Generando listado de archivos en deshuso..."
  34. sin_uso = [a for a in p_img if a not in en_uso]
  35. """
  36. file=open('resultado.log','a')
  37. file.write('Resultado\n')
  38. file.write('------------\n')
  39. file.write('\n'.join(sin_uso))
  40. file.close()
  41. print "Busqueda Finalizada, se ha generado resultado.log"
  42. """
  43. ruta = "respaldo_"+datetime.datetime.now().strftime("%Y%m%d_%p%I%M")
  44. print "Moviendo los archivos en deshuso..."
  45. if not os.path.isdir(ruta):
  46.                 os.mkdir(ruta)
  47. for arc in sin_uso:
  48.                 shutil.move(arc, os.path.join(ruta,arc.split(os.sep)[-1]))
  49. print "Buscada Finalizada, archivos movidos a", ruta
  50.  
« Última modificación: Marzo 07, 2014, 11:15:57 am por deni_celine »

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 383
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #1 en: Marzo 06, 2014, 10:57:48 pm »
Muy buena idea brother, nunca se me ocurrió hacer un script para esto.

Con respecto al script, te puedo hacer un par de observaciones (espero no te molesten).

1. Puedes evitar tantos or a la hora de verificar la extensión de script de esta manera:

Código: Python
  1. ext = f.split(".")[-1]  # Obtienes la extension del archivo
  2. if ext in ("jpg", "gif", "png", "swf", "jpeg", "pdf"):  # Y verificas si está en la lista de las extensiones "permitidas"
  3.  

Además puedes agregar o eliminar una extensión modificando sólo la lista de las extensiones permitidas.

2. Cuando haces:

Código: Python
  1.                         for texto in file.readlines():
  2.                                 texto2 += texto.upper()
  3.                         file.close()
  4.                         for i in img:
  5.                                 if (texto2.find(i.upper()) > 0):
  6.                                         en_uso.append(i)

Por cada línea del archivo recorres la lista de imágenes.

Lo mejor sería usar read() en lugar de readlines() para leer todo el archivo de una vez y ahí sí, recorrer y comprobar la lista de imágenes. Algo así.

Código: Python
  1. with open(f, "r") as file:
  2.                 texto2 = file.read().upper()
  3.                 for i in img:
  4.                     if (texto2.find(i.upper()) > 0):
  5.                         en_uso.append(i)

3. No es buena idea comparar los archivos en mayúsculas. En Windows no es problema, pero en Linux Archivo.png y archivo.png no son el mismo archivo.

Saludos!






You are not allowed to view links. Register or Login

Desconectado deni_celine

  • *
  • Underc0der
  • Mensajes: 36
  • Actividad:
    0%
  • Reputación 0
  • un susurro con la fuerza de mil gritos
    • Ver Perfil
« Respuesta #2 en: Marzo 06, 2014, 11:24:23 pm »
las observaciones o criticas constructivas son uno de los motivos por los que público xd así aprendo ;) asi que gracias brotha por tus consejos, y lo del punto 3 oh yesus! tienes razón, bueno estaba en un server windows asi que paso desapercibido xd  Saludos :D

edit: modifique el código con tus consejos, solo me quedo la duda del "with" , no sé bien para que sirve , le preguntare a google xD
« Última modificación: Marzo 06, 2014, 11:54:42 pm por deni_celine »

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 383
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #3 en: Marzo 07, 2014, 12:44:45 am »
You are not allowed to view links. Register or Login
edit: modifique el código con tus consejos, solo me quedo la duda del "with" , no sé bien para que sirve , le preguntare a google xD

En este caso lo que hace es abrir el archivo bajo el alias file y una vez se sale del bloque del with, el mismo se encarga de cerrar el archivo.

You are not allowed to view links. Register or Login

Saludos!






You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



Tutorial envio de archivos usando sockets

Iniciado por Once

Respuestas: 4
Vistas: 5531
Último mensaje Noviembre 23, 2013, 10:11:41 am
por alexander1712
[Codigo + Introduccion] Manejo de archivos csv en python

Iniciado por blozzter

Respuestas: 2
Vistas: 6474
Último mensaje Abril 01, 2012, 05:43:38 pm
por pab mac
Moviendonos entre archivos con python

Iniciado por Once

Respuestas: 6
Vistas: 3387
Último mensaje Enero 23, 2015, 12:30:11 am
por Azav
[Python] Descargar Archivos - by NiKo

Iniciado por ProcessKill

Respuestas: 3
Vistas: 3264
Último mensaje Noviembre 03, 2012, 11:50:45 am
por BigBear
inRar.py buscador de archivos rar en imágenes

Iniciado por Once

Respuestas: 1
Vistas: 1214
Último mensaje Noviembre 30, 2013, 11:06:26 pm
por WhiZ