Advertisement
teslariu

dir

Aug 24th, 2022
1,268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.86 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # Script que lista archivos y directorios
  4.  
  5.  
  6. import os
  7. from datetime import datetime
  8. from tabulate import tabulate
  9.  
  10.  
  11. archivos = 0
  12. directorios = 0
  13.  
  14. # creo la tabla para mostrar los datos
  15. # formato de la tabla:
  16. # si es un archivo:
  17. # <fecha y hora>        <tamaño> <nombre>
  18. # si es un directorio:
  19. #                <DIR>           <nombre>
  20.  
  21. tabla = []
  22.  
  23.  
  24. # Escaneo el directorio y leo los datos según sea archivo o directorio
  25. for entrada in os.scandir(os.getcwd()):
  26.     if entrada.is_file():
  27.         archivos += 1
  28.         nombre = entrada.name
  29.        
  30.         # leo la info del archivo
  31.         info = entrada.stat()
  32.        
  33.         # leo el tamaño del archivo
  34.         tamanio = info.st_size
  35.        
  36.         # formateo el tamaño en B, KB, MB según corresponda
  37.         if tamanio < 1024:
  38.             tamanio = f"{tamanio} B"
  39.            
  40.         elif 1024 <= tamanio <= 1024**2:
  41.             tamanio = f"{tamanio/1024:.1f} KB"
  42.        
  43.         else:
  44.             tamanio = f"{tamanio/1024**2:.1f} MB"
  45.            
  46.         # leo la fecha y hora del ultimo acceso al archivo
  47.         modificacion = datetime.utcfromtimestamp(info.st_mtime).strftime('%d/%m/%Y  %H:%M')
  48.        
  49.         # agrego el dato a la tabla
  50.         tabla.append([modificacion, "", tamanio, nombre])
  51.        
  52.  
  53.     elif entrada.is_dir():
  54.         directorios += 1
  55.         nombre = entrada.name
  56.        
  57.         # agrego el dato a la tabla
  58.         tabla.append(["", "<DIR>".center(11), "", nombre])
  59.  
  60.     else:
  61.         # agrego el dato a la tabla
  62.         tabla.append(["---", "----", "----", "----"])
  63.        
  64. print(tabulate(
  65.             tabla,
  66.             tablefmt = "plain",
  67.             colalign = ["center", "center", "right", "left"]
  68.     )
  69. )
  70.  
  71. print(f"\n\n{archivos} archivos")
  72. print(f"{directorios} directorios")    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement