- À propos de os.rename()
- Syntaxe de os.rename()
- Renommer un fichier avec os.rename()
- Renommer un fichier en conservant son extension
- Déplacer un fichier avec os.rename()
- Renommer et déplacer un fichier simultanément
- Vérifier l'existence du fichier avant de le renommer
- Renommer plusieurs fichiers
- Gérer les erreurs lors d'un renommage
- Résumé
1. À propos de os.rename()
Le module os de Python fournit plusieurs fonctions permettant de manipuler les fichiers et les dossiers du système. Parmi elles, la fonction os.rename() permet principalement de renommer un fichier, mais elle peut également être utilisée pour déplacer un fichier vers un autre dossier.
La fonction os.rename() est disponible directement dans le module os. Il faut donc commencer par importer ce module avant de pouvoir l'utiliser.
Le code suivant importe simplement le module os et affiche le nom de la fonction que nous allons utiliser.
1 2 3 | import os print(os.rename) |
Sortie possible :
1 | <built-in function rename> |
La fonction os.rename() travaille directement sur les fichiers présents sur le disque. Le renommage ou le déplacement effectué est donc réel et persiste après l'arrêt du programme Python.
2. Syntaxe de os.rename()
La fonction os.rename() reçoit principalement deux arguments : le chemin source et le chemin de destination.
1 | os.rename(source, destination) |
Sortie :
1 | Aucune valeur n'est affichée si l'opération réussit. |
Le paramètre source représente le nom ou le chemin actuel du fichier, tandis que destination représente son nouveau nom ou son nouvel emplacement.
Par exemple, l'instruction suivante indique à Python que le fichier ancien.txt doit prendre le nom nouveau.txt.
1 2 3 | import os os.rename("ancien.txt", "nouveau.txt") |
Sortie :
1 | Aucune sortie |
Après l'exécution, ancien.txt n'existe plus sous ce nom et le fichier apparaît sous le nom nouveau.txt.
3. Renommer un fichier avec os.rename()
L'utilisation la plus simple de os.rename() consiste à changer le nom d'un fichier situé dans le même dossier. Il suffit d'indiquer son ancien nom puis son nouveau nom.
Supposons que le dossier courant contienne un fichier nommé cours.txt. Le programme suivant le renomme en python.txt.
1 2 3 4 | import os os.rename("cours.txt", "python.txt") print("Le fichier a été renommé.") |
Sortie :
1 | Le fichier a été renommé. |
Après l'exécution du programme, le fichier cours.txt porte désormais le nom python.txt. Son contenu n'est pas modifié.
4. Renommer un fichier en conservant son extension
Lorsqu'on renomme un fichier, il est généralement préférable de conserver son extension. Celle-ci permet notamment d'identifier le type du fichier, par exemple .txt, .pdf, .jpg ou .py.
Le programme suivant transforme le nom rapport.txt en rapport_python.txt tout en conservant l'extension .txt.
1 2 3 4 5 6 7 | import os ancien_nom = "rapport.txt" nouveau_nom = "rapport_python.txt" os.rename(ancien_nom, nouveau_nom) print("Nouveau nom :", nouveau_nom) |
Sortie :
1 | Nouveau nom : rapport_python.txt |
Pour séparer automatiquement le nom d'un fichier de son extension, nous pouvons utiliser os.path.splitext(). Cette technique est particulièrement utile lorsque le nom du fichier est stocké dans une variable.
1 2 3 4 5 6 7 8 9 | import os fichier = "rapport.txt" nom, extension = os.path.splitext(fichier) nouveau_nom = nom + "_python" + extension os.rename(fichier, nouveau_nom) print(nouveau_nom) |
Sortie :
1 | rapport_python.txt |
5. Déplacer un fichier avec os.rename()
La fonction os.rename() peut également servir à déplacer un fichier. Au lieu de fournir uniquement un nouveau nom, nous indiquons comme destination un chemin situé dans un autre dossier.
Supposons que le fichier cours.txt se trouve dans le dossier courant et que le dossier documents existe déjà. Le programme suivant déplace le fichier vers ce dossier.
1 2 3 4 5 6 7 | import os source = "cours.txt" destination = "documents/cours.txt" os.rename(source, destination) print("Le fichier a été déplacé.") |
Sortie :
1 | Le fichier a été déplacé. |
Après cette opération, cours.txt n'est plus situé dans le dossier courant. Il se trouve désormais dans le dossier documents.
Le dossier de destination doit normalement exister avant l'appel à os.rename(). Dans le cas contraire, Python déclenche une erreur.
6. Renommer et déplacer un fichier simultanément
La fonction os.rename() permet de déplacer et de renommer un fichier au cours de la même opération. Il suffit que le chemin de destination contienne à la fois le nouveau dossier et le nouveau nom.
Dans l'exemple suivant, le fichier cours.txt est déplacé vers le dossier documents tout en étant renommé cours_python.txt.
1 2 3 4 5 6 7 | import os source = "cours.txt" destination = "documents/cours_python.txt" os.rename(source, destination) print("Le fichier a été déplacé et renommé.") |
Sortie :
1 | Le fichier a été déplacé et renommé. |
Cette possibilité permet donc d'effectuer deux opérations avec une seule instruction : changer l'emplacement du fichier et modifier son nom.
7. Vérifier l'existence du fichier avant de le renommer
Si le fichier source n'existe pas, os.rename() provoque une erreur. Il peut donc être utile de vérifier préalablement son existence avec os.path.isfile().
Le programme suivant vérifie que cours.txt existe et correspond bien à un fichier avant d'effectuer le renommage.
1 2 3 4 5 6 7 8 9 10 | import os source = "cours.txt" destination = "python.txt" if os.path.isfile(source): os.rename(source, destination) print("Le fichier a été renommé.") else: print("Le fichier source n'existe pas.") |
Sortie possible :
1 | Le fichier a été renommé. |
Nous pouvons également vérifier que le fichier de destination n'existe pas déjà avant d'effectuer l'opération. Cette précaution évite notamment des comportements différents selon le système d'exploitation.
1 2 3 4 5 6 7 8 9 10 11 12 | import os source = "cours.txt" destination = "python.txt" if not os.path.isfile(source): print("Le fichier source n'existe pas.") elif os.path.exists(destination): print("La destination existe déjà.") else: os.rename(source, destination) print("Le fichier a été renommé.") |
Sortie possible :
1 | Le fichier a été renommé. |
8. Renommer plusieurs fichiers
La fonction os.rename() peut être combinée avec une boucle afin de renommer automatiquement plusieurs fichiers. Cette méthode est particulièrement utile pour organiser une grande quantité de documents, d'images ou de fichiers produits par un programme.
Dans l'exemple suivant, nous disposons des fichiers photo1.jpg, photo2.jpg et photo3.jpg. Nous ajoutons le préfixe vacances_ devant chacun de leurs noms.
1 2 3 4 5 6 7 8 | import os fichiers = ["photo1.jpg", "photo2.jpg", "photo3.jpg"] for fichier in fichiers: nouveau_nom = "vacances_" + fichier os.rename(fichier, nouveau_nom) print(fichier, "->", nouveau_nom) |
Sortie :
1 2 3 | photo1.jpg -> vacances_photo1.jpg photo2.jpg -> vacances_photo2.jpg photo3.jpg -> vacances_photo3.jpg |
Cette technique permet d'automatiser rapidement le renommage en série de plusieurs fichiers.
9. Gérer les erreurs lors d'un renommage
Une opération avec os.rename() peut échouer pour plusieurs raisons : le fichier source n'existe pas, le dossier de destination est absent, les droits d'accès sont insuffisants ou la destination pose un problème sur le système utilisé.
Une structure try...except permet d'intercepter l'erreur afin d'éviter l'arrêt brutal du programme.
1 2 3 4 5 6 7 8 9 10 11 12 | import os source = "cours.txt" destination = "python.txt" try: os.rename(source, destination) print("Le fichier a été renommé.") except FileNotFoundError: print("Le fichier source est introuvable.") except PermissionError: print("Permission refusée.") |
Sortie possible si le fichier n'existe pas :
1 | Le fichier source est introuvable. |
Cette méthode est particulièrement utile dans les programmes destinés à manipuler des fichiers dont l'existence ou les permissions ne sont pas connues à l'avance.
10. Résumé
La fonction os.rename() du module os permet de modifier facilement le nom ou l'emplacement d'un fichier.
- os.rename(source, destination) permet de renommer un fichier.
- En changeant le chemin de destination, os.rename() peut également déplacer un fichier.
- Il est possible de renommer et déplacer un fichier simultanément.
- os.path.isfile() permet de vérifier l'existence du fichier source.
- os.path.exists() permet de vérifier si le chemin de destination existe déjà.
- os.path.splitext() permet de séparer le nom du fichier de son extension.
- Une boucle for permet d'automatiser le renommage de plusieurs fichiers.
- Une structure try...except permet de gérer les erreurs éventuelles.
Le programme suivant résume une utilisation courante de os.rename() en vérifiant le fichier source et la destination avant d'effectuer le renommage.
1 2 3 4 5 6 7 8 9 10 11 12 | import os source = "cours.txt" destination = "cours_python.txt" if not os.path.isfile(source): print("Le fichier source n'existe pas.") elif os.path.exists(destination): print("Le fichier de destination existe déjà.") else: os.rename(source, destination) print("Renommage effectué avec succès.") |
Sortie possible :
Renommage effectué avec succès.
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/


