teslariu

print dir

Jan 22nd, 2022
1,330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.46 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Script que implementa listado de archivos y directorios
  5.  
  6. import os
  7. from datetime import datetime
  8. from tabulate import tabulate
  9.  
  10. directorio = input("Ingrese el directorio: ")
  11.  
  12. ##### listar los archivos del directorio #############
  13. print("\nArchivos")
  14. total = 0
  15. for entrada in os.scandir(directorio):
  16.     if entrada.is_file():
  17.         print(entrada.name)
  18.         total += 1
  19. print(f"\nTotal: {total} archivos")
  20.  
  21. ##### listar los subdirectorios del directorio #############
  22. print("\nSubdirectorios")
  23. total = 0
  24. for entrada in os.scandir(directorio):
  25.     if entrada.is_dir():
  26.         print(entrada.name)
  27.         total += 1
  28. print(f"\nTotal: {total} subdirectorios")
  29.  
  30.  
  31. ######  mostrar archivos con tamaño y fecha de ultima modificacion
  32. total = 0
  33. tabla = []
  34. for entrada in os.scandir(directorio):
  35.     if entrada.is_file():
  36.         info = entrada.stat()
  37.         tamanio = info.st_size
  38.        
  39.         if tamanio < 1024:
  40.             tamanio = f"{tamanio} B"
  41.            
  42.         elif 1024 <= tamanio < 1024**2:
  43.             tamanio = "{:.1f} KB".format(tamanio/1024)
  44.            
  45.         else:
  46.             tamanio = "{:.1f} MB".format(tamanio/1024**2)
  47.            
  48.         ult_modificacion = datetime.utcfromtimestamp(info.st_mtime).strftime('%d-%b-%y %H:%M')
  49.         tabla.append([entrada.name, tamanio, ult_modificacion])
  50.         total += 1
  51.  
  52. print(tabulate(
  53.             tabla,
  54.             headers = ["Archivo", "Tamaño", "Última modificación"],
  55.             tablefmt = "grid",
  56.             colalign = ['left', 'right', 'center']
  57.             )
  58.     )
  59.    
  60. print(f"\nTotal: {total} archivos")
Advertisement
Add Comment
Please, Sign In to add comment