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.
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.
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
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
Partager