Dans tes manipulations de chemins pour les fichiers, tu utilises directement des manipulations de chaînes. Or, dans la librairie standard de Python, il y a le module os.path qui contient une série de fonctions pour faire cela de façon propre, indépendamment de la plateforme.
os.walk() a déjà été indiqué dans un autre post.
Pour le pattern matching sur les noms de fichiers en globbing, il y a le module glob, fonction glob() - voir s'il peut prendre des expressions du genre *.(truc|machine|bidule) - si oui ça te zappe ton étape de filtrage (ou utiliser fnmatch qui fait à peu près la même chose que toi, mais en compilé).
Tu pourrais éventuellement remplacer les listes de EXT et EXC par des set(), pour lesquels l'opération de test de présence est en O(1) - bon, là y'a pas beaucoup de données.
Tu pourrais ne faire qu'un seul commit sur la base de données, tout à la fin, pour éviter de multiplier les temps de validation/flush sur disque (ou comme il a été indiqué, cumuler tous les résultats et faire une seule requête de mise à jour de la BD).
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
# Divers points
Posté par lolop (site web personnel) . En réponse au message Optimisation programme. Évalué à 4.
Dans tes manipulations de chemins pour les fichiers, tu utilises directement des manipulations de chaînes. Or, dans la librairie standard de Python, il y a le module os.path qui contient une série de fonctions pour faire cela de façon propre, indépendamment de la plateforme.
os.walk() a déjà été indiqué dans un autre post.
Pour le pattern matching sur les noms de fichiers en globbing, il y a le module glob, fonction glob() - voir s'il peut prendre des expressions du genre *.(truc|machine|bidule) - si oui ça te zappe ton étape de filtrage (ou utiliser fnmatch qui fait à peu près la même chose que toi, mais en compilé).
Tu pourrais éventuellement remplacer les listes de EXT et EXC par des set(), pour lesquels l'opération de test de présence est en O(1) - bon, là y'a pas beaucoup de données.
Tu pourrais ne faire qu'un seul commit sur la base de données, tout à la fin, pour éviter de multiplier les temps de validation/flush sur disque (ou comme il a été indiqué, cumuler tous les résultats et faire une seule requête de mise à jour de la BD).
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN