Bonjour,
Vous avez compris, je suis débutant.
J'essaie de programmer un moteur de recherche de fichiers. J'avais fait un programme en batch(qui fonctionne) et j'essaie maintenant de le faire en py
Le principe est le suivant:
Je recense dans une liste tous les fichiers situés sous une racine
J'insère et j'exclue des fichiers de la liste en fonction de leur extension ou en fonction de leur nom partiel.
Puis après je fais une recherche par contenu (ou exclusion de contenu) à l'intérieur des fichiers stockés dans la liste.
Après une longue journée d'efforts (je n'y connaissais rien ce matin), j'arrive au code suivant (certainement améliorable) qui n'est que le début.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
import glob 
import os.path 
 
def listdirectory(path): 
    fichier = []
    l = glob.glob(path+'\\*') 
    for i in l: 
        if os.path.isdir(i): fichier.extend(listdirectory(i)) 
        else: fichier.append(i) 
    return fichier
 
menugeneral=True
fichier=[]
while menugeneral==True:
    sorted(list(set(fichier))) 
    print("                                                     ", len(fichier)," fichiers")
 
    choixgeneral=input("[R]acine [F]ichier [C]haines [L]ister [O]uvrir [S]ynthèse [Q]uitter ")
 
    if choixgeneral=="R" or choixgeneral=="r" :
        path=input("Entrer la racine de base : ")
        fichier=listdirectory(path)
 
    if choixgeneral=="L" or choixgeneral=="l" :
        for element in fichier :
            print(element)
 
    if choixgeneral=="F" or choixgeneral=="f":
        choixfichier=input("   [I]nclure extensions [E]xclure extensions [F]ichiers : ")
 
        if choixfichier=="I" or choixfichier=="i":
            listefiche=input("      Extensions séparées d'un espace (sans le .) : ")
            listefiche=listefiche.split()
            fichierintermediaire=[]
            for fichetype in listefiche:
                for element in fichier:
                    if element.count("."+fichetype)>0:
                        fichierintermediaire.append(element)
            fichier=fichierintermediaire            
 
        if choixfichier=="E" or choixfichier=="e":
            listefiche=input("      Extensions séparées d'un espace (sans le .) : ")
            listefiche=listefiche.split()
            fichierintermediaire=[]
            for element in fichier:
                somme=0
                for fichetype in listefiche:
                    somme=somme+element.count("."+fichetype)
                if somme==0:
                    fichierintermediaire.append(element)
            fichier=fichierintermediaire
 
        if choixfichier=="F" or choixfichier=="f":
            print("Mettre des caractères possibles des noms des fichiers séparés d'espaces (sans le .) : ")
            listefiche=input()
            listefiche=listefiche.split()
            fichierintermediaire=[]
            for fichetype in listefiche:
                for element in fichier:
                    if element.count(fichetype)>0:
                        fichierintermediaire.append(element)
            fichier=fichierintermediaire            
 
    if choixgeneral=="Q" or choixgeneral=="q" : menugeneral=False
Le problème est le suivant. Si dans ma recherche de fichiers par extension je tape <<doc>> il me trouve des fichiers par contre si je tape <<Doc>> ou <<DOC>> ou ... et là il ne trouve plus rien.
Y a t-il moyen de programmer une recherche de caractères dans une liste sans tenir compte de la case?
Merci pour vos réponses.
Gabriel