- À propos du test d'existence avec os.path
- Tester l'existence d'un chemin avec os.path.exists()
- Tester si un chemin est un fichier avec os.path.isfile()
- Tester si un chemin est un dossier avec os.path.isdir()
- Différence entre exists(), isfile() et isdir()
- Tester plusieurs fichiers et dossiers
- Tester l'existence avant de créer un fichier
- Tester l'existence avant de supprimer un fichier
- Tester un chemin relatif et un chemin absolu
- A retenir
1. À propos du test d'existence avec os.path
Lorsqu'un programme Python manipule des fichiers ou des dossiers, il est souvent nécessaire de vérifier leur existence avant d'effectuer une opération. Cela permet notamment d'éviter des erreurs lorsqu'on souhaite ouvrir, modifier, déplacer ou supprimer un fichier.
Le module os.path fournit plusieurs fonctions permettant d'effectuer ces vérifications. Les trois fonctions les plus utiles sont os.path.exists(), os.path.isfile() et os.path.isdir().
- os.path.exists() vérifie si un chemin existe.
- os.path.isfile() vérifie si le chemin correspond à un fichier.
- os.path.isdir() vérifie si le chemin correspond à un dossier.
Pour utiliser ces fonctions, il suffit d'importer le module os. Le code suivant vérifie par exemple si le chemin documents existe.
1 2 3 4 | import os chemin = "documents" print(os.path.exists(chemin)) |
Sortie possible :
1 | True |
2. Tester l'existence d'un chemin avec os.path.exists()
La fonction os.path.exists() permet de déterminer si un chemin existe sur le système. Le chemin peut correspondre aussi bien à un fichier qu'à un dossier. Elle renvoie True lorsque le chemin existe et False dans le cas contraire.
Dans l'exemple suivant, nous vérifions si le fichier cours.txt existe dans le dossier courant.
1 2 3 4 | import os chemin = "cours.txt" print(os.path.exists(chemin)) |
Sortie possible si le fichier existe :
1 | True |
Il est généralement plus pratique d'utiliser os.path.exists() dans une structure conditionnelle. Le programme suivant affiche un message différent selon que le chemin existe ou non.
1 2 3 4 5 6 7 8 | import os chemin = "cours.txt" if os.path.exists(chemin): print("Le chemin existe.") else: print("Le chemin n'existe pas.") |
Sortie possible :
1 | Le chemin existe. |
3. Tester si un chemin est un fichier avec os.path.isfile()
La fonction os.path.isfile() permet de vérifier qu'un chemin existe et qu'il correspond précisément à un fichier. Elle renvoie True si le chemin désigne un fichier et False dans le cas contraire.
Dans l'exemple suivant, le programme vérifie si cours.txt est bien un fichier.
1 2 3 4 5 6 7 8 | import os chemin = "cours.txt" if os.path.isfile(chemin): print("cours.txt est un fichier.") else: print("cours.txt n'est pas un fichier.") |
Sortie possible :
1 | cours.txt est un fichier. |
Si le chemin correspond à un dossier, os.path.isfile() renvoie False. Le code suivant teste par exemple le dossier documents.
1 2 3 4 | import os chemin = "documents" print(os.path.isfile(chemin)) |
Sortie :
1 | False |
4. Tester si un chemin est un dossier avec os.path.isdir()
La fonction os.path.isdir() permet de déterminer si un chemin correspond à un dossier. Elle renvoie True lorsque le dossier existe et False dans le cas contraire.
Le programme suivant vérifie si le chemin documents correspond à un dossier.
1 2 3 4 5 6 7 8 | import os chemin = "documents" if os.path.isdir(chemin): print("documents est un dossier.") else: print("documents n'est pas un dossier.") |
Sortie possible :
1 | documents est un dossier. |
Si nous appliquons os.path.isdir() à un fichier ordinaire, la fonction renvoie False.
1 2 3 4 | import os chemin = "cours.txt" print(os.path.isdir(chemin)) |
Sortie :
1 | False |
5. Différence entre exists(), isfile() et isdir()
Les fonctions exists(), isfile() et isdir() effectuent des tests différents. exists() vérifie uniquement l'existence du chemin, tandis que isfile() et isdir() permettent de connaître sa nature.
- os.path.exists(chemin) : vérifie si le chemin existe.
- os.path.isfile(chemin) : vérifie si le chemin correspond à un fichier.
- os.path.isdir(chemin) : vérifie si le chemin correspond à un dossier.
Le code suivant applique les trois fonctions au même chemin afin d'observer leurs résultats.
1 2 3 4 5 6 7 | import os chemin = "cours.txt" print(os.path.exists(chemin)) print(os.path.isfile(chemin)) print(os.path.isdir(chemin)) |
Sortie possible :
1 2 3 | True True False |
Ces résultats indiquent que cours.txt existe, qu'il s'agit d'un fichier et qu'il ne s'agit pas d'un dossier.
6. Tester plusieurs fichiers et dossiers
Il est possible de combiner les fonctions de os.path avec une boucle for afin de tester plusieurs chemins. Cette technique est utile lorsqu'un programme doit analyser plusieurs fichiers ou dossiers.
Dans l'exemple suivant, nous parcourons une liste de chemins et déterminons pour chacun s'il s'agit d'un fichier, d'un dossier ou d'un chemin inexistant.
1 2 3 4 5 6 7 8 9 10 11 | import os chemins = ["cours.txt", "documents", "image.jpg"] for chemin in chemins: if os.path.isfile(chemin): print(chemin, ": fichier") elif os.path.isdir(chemin): print(chemin, ": dossier") else: print(chemin, ": inexistant") |
Sortie possible :
1 2 3 | cours.txt : fichier documents : dossier image.jpg : inexistant |
7. Tester l'existence avant de créer un fichier
Avant de créer un fichier, il peut être utile de vérifier qu'un fichier portant le même nom n'existe pas déjà. Cela permet d'éviter de remplacer accidentellement un fichier existant.
Dans l'exemple suivant, le fichier rapport.txt est créé uniquement s'il n'existe pas encore. L'opérateur not permet d'inverser le résultat renvoyé par os.path.exists().
1 2 3 4 5 6 7 8 9 10 | import os chemin = "rapport.txt" if not os.path.exists(chemin): with open(chemin, "w") as fichier: fichier.write("Mon rapport Python") print("Le fichier a été créé.") else: print("Le fichier existe déjà.") |
Sortie possible :
1 | Le fichier a été créé. |
Si nous exécutons une deuxième fois le même programme, le fichier existe désormais et le programme évite de le recréer.
Sortie lors de la deuxième exécution :
1 | Le fichier existe déjà. |
8. Tester l'existence avant de supprimer un fichier
Avant de supprimer un fichier avec os.remove(), il est préférable de vérifier que celui-ci existe réellement. Pour vérifier spécifiquement qu'il s'agit d'un fichier, nous pouvons utiliser os.path.isfile().
Dans l'exemple suivant, le fichier temp.txt est supprimé uniquement s'il existe et s'il s'agit bien d'un fichier.
1 2 3 4 5 6 7 8 9 | import os chemin = "temp.txt" if os.path.isfile(chemin): os.remove(chemin) print("Le fichier a été supprimé.") else: print("Le fichier n'existe pas.") |
Sortie possible :
1 | Le fichier a été supprimé. |
Cette vérification évite de demander directement à os.remove() de supprimer un fichier qui n'existe pas.
9. Tester un chemin relatif et un chemin absolu
Les fonctions de os.path peuvent être utilisées aussi bien avec un chemin relatif qu'avec un chemin absolu. Un chemin relatif est interprété à partir du répertoire courant du programme.
Le code suivant vérifie l'existence d'un fichier situé dans le dossier documents à l'aide d'un chemin relatif.
1 2 3 4 5 6 7 8 | import os chemin = "documents/cours.txt" if os.path.exists(chemin): print("Le chemin relatif existe.") else: print("Le chemin relatif n'existe pas.") |
Sortie possible :
1 | Le chemin relatif existe. |
Un chemin absolu indique quant à lui l'emplacement complet du fichier sur le système. Sous Windows, nous pouvons par exemple tester un chemin en utilisant une chaîne brute précédée de r.
1 2 3 4 5 6 7 8 | import os chemin = r"C:\Users\Younes\Documents\cours.txt" if os.path.isfile(chemin): print("Le fichier existe.") else: print("Le fichier n'existe pas.") |
Sortie possible :
1 | Le fichier existe. |
10. A retenir !
Le module os.path fournit des outils simples pour vérifier l'existence et la nature des chemins manipulés par un programme Python.
- os.path.exists() permet de vérifier si un chemin existe.
- os.path.isfile() permet de vérifier si un chemin correspond à un fichier.
- os.path.isdir() permet de vérifier si un chemin correspond à un dossier.
- Ces fonctions renvoient une valeur booléenne True ou False.
- Elles peuvent être utilisées avec des chemins relatifs ou des chemins absolus.
- Elles sont particulièrement utiles avant d'ouvrir, créer, modifier ou supprimer des fichiers et des dossiers.
Le programme suivant constitue un exemple général permettant d'identifier simplement la nature d'un chemin.
1 2 3 4 5 6 7 8 9 10 | import os chemin = "documents" if os.path.isfile(chemin): print("Le chemin correspond à un fichier.") elif os.path.isdir(chemin): print("Le chemin correspond à un dossier.") else: print("Le chemin n'existe pas.") |
Sortie possible :
1 | Le chemin correspond à un dossier. |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


