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
| import os
import sys
def get_size_directory(directory):
size = 0
files = os.listdir(directory) # liste de tous fichiers, répertoires, ...
path = None # Dans le cas où files est vide
for f in files:
path = os.path.join(directory, f) # Joint répertoire et fichier pour chemin absolu
if not os.path.isdir(path): # Si pas un répertoire, on peut ajouter taille du fichier
try:
size += os.path.getsize(path)
except OSError: # fichier non accessible (des fois même avec les droits)
print("chemin inaccessible: {}".format(path))
else: # Sinon on refait le taf pour le répertoire
get_size_directory(path)
if path: # Si files non vide
res[directory] = size
res = {}
arg = sys.argv[1] # On prend le 1er argument après le fichier lors de l'exécution
if not os.path.isdir(arg):
sys.exit("{} n'est pas un répertoire !".format(arg))
get_size_directory(arg) # Enregistrement des résultats dans res
for directory in res:
print("{}: {}".format(directory, res[directory])) |
Partager