J’ai un fichier qui peut se trouver à un endroit différent sur la machine de chaque utilisateur. Existe-t-il un moyen d’implémenter une recherche pour le fichier ? Un moyen de transmettre le nom du fichier et l’arborescence des répertoires à rechercher ?
Réponses
Trop de publicités?os.walk est la réponse, cela trouvera la première correspondance:
Et cela trouvera toutes les correspondances:
Et cela correspondra à un modèle:
J’ai utilisé une version de `` et sur un répertoire plus grand obtenu des temps autour de 3,5 sec. J’ai essayé deux solutions aléatoires sans grande amélioration, puis je l’ai fait:
Bien que ce soit POSIX uniquement, j’ai obtenu 0,25 seconde.
À partir de là, je pense qu’il est tout à fait possible d’optimiser beaucoup la recherche entière d’une manière indépendante de la plate-forme, mais c’est là que j’ai arrêté la recherche.
Si vous utilisez Python sur Ubuntu et que vous voulez seulement qu’il fonctionne sur Ubuntu, un moyen beaucoup plus rapide est d’utiliser le programme du `` terminal comme celui-ci.
est un
des chemins d’accès absolus au fichier. C’est 10 000 fois plus rapide que les méthodes ci-dessus et pour une recherche que j’ai faite, c’était environ 72 000 fois plus rapide.
Pour une recherche rapide et indépendante du système d’exploitation, utilisez ``
https://github.com/benhoyt/scandir/#readme
Lisez http://bugs.python.org/issue11406 pour plus de détails pourquoi.