Expression régulière - Python - Programmation
Marsh Posté le 03-05-2005 à 16:27:41
Faut que tu te plonges dans le module python re.
Sinon moins laid :
Code :
|
@++
Marsh Posté le 03-05-2005 à 16:31:26
très juste je me suis plongé dans le module re. Mais je suis une vraie bille en regexp
Marsh Posté le 03-05-2005 à 16:46:16
r"(\.html|\.css|\.htm|\.php|\.tpl)$" |
Suffit de faire un search dessus
Tu devrais installer Kodos, et lire Dive Into Python (il me semble qu'il y a un chapitre sur les REs)
Marsh Posté le 03-05-2005 à 16:47:47
Merci beaucoup
Je viens d'installer Kodos et je vais passer ma soirée sur les regexp, c'est vraiment une lacune chez moi
Marsh Posté le 03-05-2005 à 18:43:22
une autre solution :
Code :
|
le_GLu
Marsh Posté le 03-05-2005 à 19:46:05
j'aime beaucoup ta méthode le_GLu !
endswith à l'air pas mal aussi
merci à tous
Marsh Posté le 03-05-2005 à 20:04:31
sauf que la méthode de glu le_GLu, elle va te péter à la gueule si y a pas de . dans le nom du fichier
Marsh Posté le 03-05-2005 à 22:47:20
Bien après un peu d'apprentissage j'ai décidé d'utiliser les regexp, beaucoup plus simple et élégant au final.
Le script (mon premier en python) compte juste le nombre de ligne dans un projet web en php.
Je le colle ici pour info :
Code :
|
Bon ... il y a des choses en dur (le path de racine et le séparateur) mais bon c'est juste pour faire joujou pour l'instant. Je suis toutefois preneur d'observation constructive !
Merci de votre aide
Marsh Posté le 04-05-2005 à 00:46:06
Tout ça ensemble, ça donne:
Code :
|
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 :
|
edit: j'ai oublié les import, rien de grave
Marsh Posté le 04-05-2005 à 08:05:31
c'est quoi l'intérêt d'utiliser une regex de la mort qui tue (d'ailleurs, pas optimisée) si on la compile pas
Marsh Posté le 04-05-2005 à 09:20:50
dividee> merci pour tes remarques ! python à l'aire plus simple syntaxiquement que d'autre langage, mais j'ai des réflexes de dev en syntaxe c/c++/java. Pour le coup des triples guillement, c'est Kodos qui me sort ça dans ses examples
Taz> tu pourrais juste donner un petit mot sur la compilation des regexp et de l'impacte sur les performances
Marsh Posté le 04-05-2005 à 11:41:50
Taz a raison, la regexp est utilisée très souvent, alors tu y gagneras bcp à la compiler. En fait, je pense que la version plus "naïve" avec le .endswith serait encore plus rapide, même si c'est moins beau...
Marsh Posté le 04-05-2005 à 12:25:08
je suis d'accord, sauf que je trouve la version endswith pas si moche que ça.
Marsh Posté le 03-05-2005 à 16:14:27
Bonjour,
J'ai un petit script en python avec un vilain if :
Je suis sur qu'il y a moyen de gérer ça autrement avec une expression régulière mais je n'y connais pas grand chose dans ce domaine (en regexp et en python c'est mon premier script)
Si une bonne ame pouvait me montrer le bon chemin
Merci