|
#!/usr/bin/env python |
|
# -*- coding: utf-8 -*- |
|
# Directory nevagation |
|
from os import path |
|
import os, glob |
|
|
|
def search(directory=None,guiones='---'): |
|
|
|
global cantidad_dir , cantidad_file |
|
|
|
if directory: |
|
try: |
|
os.chdir(directory) |
|
|
|
# metodo devolvera una lista de todos los archivos y directorios de |
|
# el directorio actual... ejemplo : [./cosas, ./archivo, ...] |
|
item_list = glob.glob(path.join('.','*')) |
|
|
|
# Ordeno la lista de elementos que se me dio |
|
item_list = sorted(item_list) |
|
|
|
for item in item_list: |
|
|
|
data = item.split('/')[1]# ejemplo: ./cosas , despues del split --> cosas |
|
|
|
if path.isfile(item): |
|
|
|
with open('/home/leoxnidas/Escritorio/log','a') as f: |
|
f.write(guiones+'|'+data+'\n') |
|
|
|
print guiones+'|'+data |
|
cantidad_file += 1 |
|
|
|
|
|
elif path.isdir(item) : |
|
|
|
with open('/home/leoxnidas/Escritorio/log','a') as f: |
|
f.write(guiones+'|'+data+'\n') |
|
|
|
print guiones+'|'+data |
|
cantidad_dir += 1 |
|
|
|
# si es un directorio lo imprimo y despues le agrego 3 rayas mas a n, |
|
# ya que va a entrar en el directorio |
|
guiones += '----' |
|
search(item,guiones) |
|
os.chdir('..')# devolviendome un directorio atras .. |
|
guiones = guiones.rsplit('-',4)[0] |
|
|
|
except OSError as e: |
|
# En caso de que no se pueda entrar en el directorio, atrapare el error |
|
# pero como estoy en el Escritorio, no pasara un carajo =P |
|
print "[+] Error ",e |
|
|
|
#si ocurre un error... lo regisro en el log.. |
|
with open('/home/leoxnidas/Escritorio/log','a') as f: |
|
f.write("[+] Error ",e) |
|
else: |
|
directory = path.dirname(path.realpath(__file__)) |
|
search(directory) |
|
|
|
cantidad_file = 0 |
|
cantidad_dir = 0 |
|
|
|
def main(): |
|
|
|
# para no tener que eliminar el archivo existente... lo sobre escribo y listo |
|
with open('/home/leoxnidas/Escritorio/log','w') as f: |
|
f.write('') |
|
|
|
search() |
|
print "\ncantidad de directorios: {0}, cantidad de archivos: {1}".format(cantidad_dir,cantidad_file) |
|
|
|
if __name__ == '__main__': |
|
try: |
|
main() |
|
except KeyboardInterrupt: |
|
print "\n[+] Error en la ejecucion del programa.." |