Utilisez les caractères génériques avec os.chemin d'accès.isfile()
J'aimerais vérifier si il y a de tout .rar fichiers dans un répertoire. il n'a pas besoin d'être récursive.
À l'aide de caractères génériques avec os.chemin d'accès.isfile() a été ma meilleure supposition, mais ça ne fonctionne pas. Que puis-je faire alors?
Grâce.
- Vous devez les accepter une réponse à cette question...
Vous devez vous connecter pour publier un commentaire.
glob est ce que vous avez besoin.
os.path.isfile()
retourneTrue
si un chemin est un fichier régulier. Donc, qui est utilisé pour vérifier si un fichier existe déjà et ne prend pas en charge les caractères génériques.glob
n'.Sans l'aide de
os.chemin d'accès.isfile()
vous ne savez pas si les résultats retournés parglob()
sont des fichiers ou des sous-répertoires, alors essayez quelque chose comme ceci à la place:Vous pourriez tout aussi bien filtrer les résultats retournés par
glob()
si vous le souhaitez, et qui a l'avantage de faire quelques choses relatives à unicode et la comme. Vérifiez la source dans glob.py si il le faut.glob
a l'avantage ou quefnmatch
a l'avantage?Les caractères génériques sont développées par shell et par conséquent, vous ne pouvez pas l'utiliser avec des os.chemin d'accès.isfile()
Si vous souhaitez utiliser des caractères génériques, vous pouvez utiliser
popen with shell = True
ouos.system()
Vous pourriez obtenir le même effet avec glob module de trop.
iglob est mieux que glob ici puisque vous ne voulez la liste complète des fichiers rar, mais voulez juste pour vérifier qu'on rar existe
iglob
retourne un itérateur, donc si vous appelez ça une fois et elle retourne quelque chose, vous savez qu'il y a au moins un match.Si vous venez de vous soucier de savoir si au moins un fichier existe et que vous ne voulez pas d'une liste de fichiers:
à l'affichage du chemin d'accès complet et le filtre basé sur l'extension,
Juste une autre méthode pour obtenir le travail fait à l'aide de sous-processus.
Référence : https://docs.python.org/2/library/subprocess.html#subprocess.check_output