Advertisement
teslariu

dir.py

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