Ecco un veloce script in python per ricavare la dimensione delle cartelle sul computer (vale sia per Windows che Mac e Linux) e stampare l’elenco ordinato (dalla più grande alla più piccola) di tutte quelle trovate sopra una certa dimensione.
A me è stato molto utile per svuotare C: che si era riempito di cartelle temporanee, di cache e cose totalmente dimenticate.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import os import math class CalcolaDimensione: def __init__(s): s.cartelle = [] def leggi_cartella(s,path): try: dim = 0 for file in os.listdir(path): tmp = path + "\\" + file if os.path.isdir(tmp): dim += s.leggi_cartella(tmp) else: dim += os.path.getsize(tmp) s.cartelle.append({ "path": path, "bytes": dim, "size": s.dimensione(dim) }) return dim except: print("Errore: %s" % path) return 0 def ordina(s): s.cartelle.sort(key=lambda e: e["bytes"],reverse=True) def dimensione(s,dim): if dim == 0: return "0B" nomi = ("B","KB","MB","GB","TB") i = int(math.floor(math.log(dim,1024))) p = math.pow(1024,i) s = round(dim / p,2) return "%s %s" % (s,nomi[i]) cd = CalcolaDimensione() cd.leggi_cartella("C:\\") cd.ordina() for c in cd.cartelle: if c["bytes"] > 1024*1024*200: print(c["size"],c["path"]) |
Lo script è stato scritto per Python 3.9
L’ouput finale genera qualcosa di simile (nel mio caso vedo che le macchine virtuali di Android occupano da sole 24GB!)
Faccio notare che nella stampa finale ho ridotto l’elenco a cartelle maggiori di 200MB.