Problème en Python

Fermé
Magenti Messages postés 19 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 20 juillet 2012 - Modifié par Magenti le 12/01/2011 à 20:18
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 13 janv. 2011 à 08:44
Bonjour,

J'ai un script système en Python mais je ne comprends pas ce qu'il fait....
Je ne trouve pas les paramètres pour le tester.....
Si il y a quelqu'un doué en Python pour m'aider.....^^
Merci d'avance !

#!/usr/bin/python

import os, re, sys
resultats = {}

def parcours (r, e, f) :
liste = os.listdir(r)
for fichier in liste :
res3 = re.search("^\.", fichier)
if not res3 :
if os.path.isdir(r+"/"+fichier) :
parcours (r+"/"+fichier, e, f)
else :
res4 = re.search("^"+f+"$", fichier)
if res4 :
i = 0
fd = open(r+"/"+fichier)
if fd :
lignes = fd.readlines()
for ligne in lignes :
res5 = re.search(e, ligne)
if res5 : i += 1
fd.close()
if i > 0 :
if resultats.has_key(i) :
if resultats[i].has_key(r) :
resultats[i][r] += ":"+fichier
else :
resultats[i][r] = fichier
else :
resultats[i] = {}
resultats[i][r] = fichier

# Programme principal

if len(sys.argv) > 2 :
exp = sys.argv[3]
res1 = re.search("^\*(.*)", exp)
if res1 :
exp = ".*"+res1.group(1)
res2 = re.search("(.*[^\.])\*(.*)", exp)
while res2 :
exp = res2.group(1)+".*"+res.group(2)
res2 = re.search("(.*[^\.])\*(.*)", exp)
parcours(sys.argv[1], sys.argv[2], exp)

clefs = resultats.keys()
clefs.sort()
for clef in clefs :
print clef, "appariements :"
for clef2 in resultats[clef].key() :
print " ", clef2, ":", resultats[clef][clef2]

5 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
10 janv. 2011 à 14:20
c'est un programme qui fait une recherche dans les fichiers cacher d'un répertoire passer en argument certains mots.
Après, le principe du python, c'est de séparer les blocs par des indentations. Et comme tu n'utilises pas les balises de codes pour ton source, on ne sais pas trop ce qu'il fait.
0
Magenti Messages postés 19 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 20 juillet 2012
10 janv. 2011 à 19:05
D'accord, je vois.....mais par contre, je vois pas trop comment le tester......il me demande de rentrer 3 arguments mais j'ai essayé pleins de trucs et il prend pas..... :S
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
11 janv. 2011 à 08:22
comme je te l'ai dit, sans indentation, difficile de comprendre !
Je peux juste te dire que le premier argument est un répertoire (typiquement le $HOME) et que les deux autres des mots à chercher.
0
Magenti Messages postés 19 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 20 juillet 2012
11 janv. 2011 à 18:46
Ok ok, merci ! ^^ Mais ce qui est bizarre, c'est que je l'ai indenté mais à l'affichage, ça prend pas.....lol
0
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
11 janv. 2011 à 23:37
y a pas de lol.

les quatre signes au dessus du rectangle dans lequel on écrit un message, tu ne t'es pas demandé à quoi ils servent ? il suffit de passer le pointeur dessus pour lire leur légende

t'as pas l'air pressé/ée d'avancer toi
0
Magenti Messages postés 19 Date d'inscription mercredi 3 mars 2010 Statut Membre Dernière intervention 20 juillet 2012
12 janv. 2011 à 20:23
Pas la peine de le prendre comme ça ! Je n'avais pas remarqué, c'est tout.
Et que ce soit indenté ou pas, Python est très compliqué à comprendre, surtout quand aucun prof n'explique clairement la chose....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
12 janv. 2011 à 21:57
Ben si, je le prends comme ça. Et je ne dois pas être le seul. Mais les autres n'ont pas pris la peine de te le dire.
Je te signale que je ne me suis pas intéressé à ton problème justenent parce que le code n'était pas indenté. Et je ne t'ai rien dit.
Mais Char Snipeur, lui, a été assez gentil pour s'y intéresser quand même et il t'a signalé deux fois que pour bien traiter le problème on a besoin d'un code indenté, mais toi tu t'en fous, à ton troisième message on n'a toujours pas de code indenté.
Si tu n'es pas capable de trouver tout seul comment on met un code en conservant son formatage, 1- tu as du souci à te faire 2- demande. Et quand tu écris "c'est bizarre, j'ai indenté mais à l'affichage ça prend pas", on se dit que tu n'as même pas remarqué qu'il y a une touche "Prévisualiser" à coté de la touche "Valider" .
Si tu pense que «Je n'avais pas remarqué, c'est tout. » constitue une explication et une excuse , libre à toi, mais dans ce cas je pesiste à penser que tu n'es pas pressé d'avancer. Ce que je veux dire, c'est qu'au lieu de t'offusquer pour si peu, tu ferais mieux d'écouter un peu ce qu'on peut te dire et de te secouer.
Le code indenté, on ne l'a toujours pas. Pourtant je pourrais sans doute t'aider.

À bon entendeur, salut.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 janv. 2011 à 08:44
Je te trouve un peu sévère, même si sur le fond tu as raison...
C'est pôur ça que je ne répond plus : marre de demander une forme correct de code alors même que tu lui dis comment faire. Et je me suis fait une raison, la plupart des gens sont très peu observateurs.
Python est très compliqué à comprendre
Ben... non. Python est facile à comprendre, essai de faire directement du C ou C++, ou carrement de l'assembleur tu sauras ce que veux dire difficile. En plus,python est très bien documenté.
0