voici un script (Python 2.3.4 sous Windows) que j'ai écrit pour calculer la
taille des sous-répertoires d'un ou plusieurs répertoires donnés (sous
Windows 2000 Server) et les afficher par ordre décroissant de taille dans un
fichier de log.
Il peut malheureusement lancer une exception en se plaignant de la longueur
excessive du path de certains fichiers.
Comment faire pour contourner ce problème ?
# -*- coding: utf-8 -*-
import sys,os,codecs
def tailles(*repertoires):
try:
fichierlog=codecs.open(os.path.join(repertoires[0],'tailles.log'),"w",'latin
1')
except Exception,E:
print str(E)
else:
lresultats,lrepertoires,numrepertoire=[],[],-1
for chemin in repertoires:
lrepertoires.append(os.path.split(chemin)[1])
numrepertoire+=1
for rep in os.listdir(chemin):
if os.path.isdir(os.path.join(chemin,rep)):
print unicode(rep,'latin1')
total,nbfichiers,nbrepertoires=0L,0L,-1L
for root,dirs,filenames in
os.walk(os.path.join(chemin,rep),topdown=False):
nbfichiers +=len(filenames)
nbrepertoires +=1
total += sum(map(lambda
f:os.stat(os.path.join(root,f)).st_size,filenames))
lresultats.append((numrepertoire,rep,total,nbfichiers,nbrepertoires))
tmplist = [(x[2], x) for x in lresultats]
tmplist.sort()
lresultats = [x for (key, x) in tmplist]
lresultats.reverse()
for res in lresultats:
if __name__=='__main__':
if len(sys.argv)<2:
print unicode('Passer en paramètre(s) un ou plusieurs répertoires à
analyser.','latin1')
print unicode('Un fichier "tailles.log" sera généré dans le premier
répertoire passé','latin1')
else:
tailles(*sys.argv[1:])
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle.
Bonsoir !
Je n'ai pas regarder ton script. Mais j'ai juste fait un essai ; et j'ai constaté qu'il ignorait les noms de sous-répertoires en unicode. Du coup, je ne suis pas allé plus loin, car je me demande s'il n'y a que la longueur des répertoires qui provoquent des exceptions.
@+ -- MCI
Bonsoir !
Je n'ai pas regarder ton script. Mais j'ai juste fait un essai ; et j'ai
constaté qu'il ignorait les noms de sous-répertoires en unicode.
Du coup, je ne suis pas allé plus loin, car je me demande s'il n'y a que la
longueur des répertoires qui provoquent des exceptions.
Je n'ai pas regarder ton script. Mais j'ai juste fait un essai ; et j'ai constaté qu'il ignorait les noms de sous-répertoires en unicode. Du coup, je ne suis pas allé plus loin, car je me demande s'il n'y a que la longueur des répertoires qui provoquent des exceptions.
@+ -- MCI
Pierre Ferry
"Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle." a écrit dans le message de news:4172ed51$0$7226$
Bonsoir !
Je n'ai pas regarder ton script. Mais j'ai juste fait un essai ; et j'ai constaté qu'il ignorait les noms de sous-répertoires en unicode. Du coup, je ne suis pas allé plus loin, car je me demande s'il n'y a que la
longueur des répertoires qui provoquent des exceptions.
@+ -- MCI
C'est déjà une info ! Merci.
"Michel Claveau - abstraction méta-galactique non triviale en fuite
perpétuelle." <unseulmcmcmcmc@msupprimerlepoint.claveauPOINTcom> a écrit
dans le message de news:4172ed51$0$7226$8fcfb975@news.wanadoo.fr...
Bonsoir !
Je n'ai pas regarder ton script. Mais j'ai juste fait un essai ; et j'ai
constaté qu'il ignorait les noms de sous-répertoires en unicode.
Du coup, je ne suis pas allé plus loin, car je me demande s'il n'y a que
la
longueur des répertoires qui provoquent des exceptions.
"Michel Claveau - abstraction méta-galactique non triviale en fuite perpétuelle." a écrit dans le message de news:4172ed51$0$7226$
Bonsoir !
Je n'ai pas regarder ton script. Mais j'ai juste fait un essai ; et j'ai constaté qu'il ignorait les noms de sous-répertoires en unicode. Du coup, je ne suis pas allé plus loin, car je me demande s'il n'y a que la
longueur des répertoires qui provoquent des exceptions.