dividee  | -  Pq des triples guillements autour de ta regexp ?
 -  Utilise os.path.join(dirname, filename) au lieu de dirname + '/' + filename
 -  'r' est le mode d'ouverture par défaut, pas besoin de le préciser
 -  readlines() charge tout ton fichier en mémoire. J'aurais plutôt fait: for line in file: nbLine += 1
 -  il n'est pas nécessaire de fermer le fichier explicitement, c'est fait automatiquement lorsque le compteur de référence tombe à 0 (du moins en CPython).
 -  les variables globales c'est moche (pour un script aussi court c'est pas vraiment un problème mais bon...). On peut profiter de l'argument supplémentaire de os.path.walk pour passer une référence à un object, qui sera donc modifiable. Le plus simple, c'est une liste avec un seul élément.
 
 
 Tout ça ensemble, ça donne:
  Code :
 - def listRep(nbLines, dirname, filenames):
 -     rawstr = r"(\.html|\.css|\.htm|\.php|\.tpl|\.txt)$"
 -     for filename in filenames:
 -             if re.search(rawstr, filename):
 -                 filePath = os.path.join(dirname, filename)
 -                 for line in file(filePath):
 -                     nbLines[0] += 1
 - nbLine = [0]
 - os.path.walk('/home/seb/projets/seblog', listRep, nbLine)
 - print nbLine[0]
 
  |  
 
 Maintenant, le coup de la liste, je trouve ça un peu moche quand-même, mais je vois pas trop comment faire autrement sans passer par une globale. J'aurais sans doute utilisé os.walk au lieu de os.path.walk:
  Code :
 - nbLine = 0
 - for dirname, dirnames, filenames in os.walk('/home/seb/projets/seblog'):
 -     rawstr = r"(\.html|\.css|\.htm|\.php|\.tpl|\.txt)$"
 -     for filename in filenames:
 -             if re.search(rawstr, filename):
 -                 filePath = os.path.join(dirname, filename)
 -                 for line in file(filePath):
 -                     nbLine += 1
 - print nbLine
 
  |  
 
 edit: j'ai oublié les import, rien de grave    Message édité par dividee le 04-05-2005 à 00:47:34
  |