Bonjour à toutes à et à tous,

Je cherche à optimiser le temps de traitement d'une fonction qui me liste les chemins d'accès à des fichiers selon plusieurs conditions. Je précise que la fonction fait son job, mais est très longue car elle lit une arborescence d'environ 4500 éléments.

En gros je récupère les chemin d'accès si je trouve dans l'un des dossiers un ficher .LOG qui se termine par "_CODEINSEE", selon une liste de commune donnée (liste qui varie d'un vingtaine à 500 codes communes). Je récupère alors le chemin d'accès à un fichier .SHP dans un sous-dossier qui est avec ce fichier .LOG. Je stock ces chemins d'accès dans une liste lorsque validé.


chem : dossier de recherches avec sous dossiers (4500 élements)
listeCom : liste des codes INSEE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
for dossier, sous_dossiers, fichiers in os.walk(chem):         
            for fichier in fichiers:
                for com in listeCom:
                    # si fichier log se terminant par code INSEE et ne contenant pas ZC => Go
                    if fichier.endswith('.LOG') and fichier.find('_'+ com)!= -1 and fichier.find('ZC')== -1 :
                            iti = dossier + "\Iti\Ft_ArcIti.shp"
                            #vérification
                            if os.path.isfile(iti):
                                listeIti.append(iti)
                            else:
                                lchemFake.append(iti)
Ca marche mais c'est long, quelqu’un aurait-il une piste?