import os, sys, re extensions = {"pas d'extension": []} def parcours(repertoire) : print("Je suis dans ", repertoire) liste = os.listdir(repertoire) for fichier in liste : cheminEtNom = repertoire+"/"+fichier if os.path.isdir(cheminEtNom) and re.search("^[^.]", fichier) and os.access(cheminEtNom, os.X_OK): parcours(cheminEtNom) else : chaines = fichier.split(".") if len(chaines) > 1 : extension = chaines[-1] if extension in extensions : extensions[extension].append(cheminEtNom) else : extensions[extension] = [cheminEtNom] else : extensions["pas d'extension"].append(cheminEtNom) def rechercheChaine(chaine, fichier) : commande = "grep '"+chaine+"' '"+fichier+"'" resultat = os.popen(commande).readlines() if len(resultat) > 0 : print(fichier, ":") for ligne in resultat : print("\t", ligne, end="") parcours(sys.argv[1]) clefs = list(extensions.keys()) clefs.sort() for clef in clefs : print(clef, ":", extensions[clef]) types = [] print("Donnez les types de fichiers que vous désirez analyser (all pour tous, 0 pour arrêter) :") while True : ext = input("Extension : ") if ext == "0" : break types.append(ext) if ext == "*" : break chaine = input("Donnez la chaîne de caractères à rechercher : ") for ext in types : if ext == "*" : for ext in extensions : for fichier in extensions[ext] : rechercheChaine(chaine, fichier) elif ext in extensions : for fichier in extensions[ext] : rechercheChaine(chaine, fichier)