Maîtriser les opérations sur les répertoires et fichiers en Python
Gestion des répertoires et fichiers en Python
Découvrez comment créer, naviguer, lister, renommer et supprimer efficacement des répertoires et fichiers en Python avec des exemples pratiques.
Vidéo : Module os Python
Répertoire Python
Quand votre projet grandit, organiser le code dans des dossiers bien structurés devient essentiel. Un répertoire — ou dossier — est un conteneur pour fichiers et sous-répertoires, et le module os de Python fournit des outils robustes pour les gérer.
Obtenir le répertoire courant
Utilisez os.getcwd() pour récupérer le répertoire de travail courant comme chaîne. Si vous avez besoin d'une représentation en octets, os.getcwdb() fera l'affaire.
import os
os.getcwd() # 'C:\\Program Files\\PyScripter'
os.getcwdb() # b'C:\\Program Files\\PyScripter'
Le double antislash indique une séquence d'échappement. L'utilisation de print() affiche le chemin correctement :
print(os.getcwd()) # C:\Program Files\PyScripter
Changer de répertoire
Changez le répertoire de travail courant avec os.chdir(path). L'argument path peut utiliser des slashes avant ou arrière ; rappelez-vous d'échapper les antislashes ou d'utiliser des chaînes brutes.
os.chdir('C:\\Python33')
print(os.getcwd()) # C:\Python33
Lister les répertoires et fichiers
Récupérez chaque fichier et sous-répertoire dans un dossier cible avec os.listdir(path). Si path est omis, la fonction opère sur le répertoire de travail courant.
print(os.getcwd()) # C:\Python33
os.listdir() # ['DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools']
os.listdir('G:\\') # ['$RECYCLE.BIN', 'Movies', 'Music', 'Photos', 'Series', 'System Volume Information']
Créer un nouveau répertoire
Créez un dossier avec os.mkdir(path). Si le chemin est relatif, le nouveau répertoire apparaît dans le répertoire de travail courant.
os.mkdir('test')
print(os.listdir()) # ['test']
Renommer un répertoire ou un fichier
La même fonction os.rename(src, dst) gère à la fois les fichiers et les dossiers. Fournissez l'ancien nom comme src et le nouveau nom désiré comme dst :
os.listdir() # ['test']
os.rename('test', 'nouveau')
print(os.listdir()) # ['nouveau']
Supprimer un répertoire ou un fichier
Supprimez un fichier avec os.remove(path). Pour supprimer un dossier vide, utilisez os.rmdir(path) :
os.listdir() # ['nouveau', 'ancien.txt']
os.remove('ancien.txt')
print(os.listdir()) # ['nouveau']
os.rmdir('nouveau')
print(os.listdir()) # []
Note : os.rmdir() ne fonctionne que sur les répertoires vides.
Si vous devez supprimer un dossier qui contient des fichiers ou sous-dossiers, la fonction shutil.rmtree() du module shutil est la solution :
os.listdir() # ['test']
os.rmdir('test') # Traceback (most recent call last): ... OSError: [WinError 145] The directory is not empty: 'test'
import shutil
shutil.rmtree('test')
print(os.listdir()) # []
Python
- Maîtriser la gestion de mémoire en C++ : Utilisation experte de new et delete
- Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
- Instructions, indentation et commentaires en Python : Guide clair
- Variables, constantes et littéraux en Python – Guide complet
- Maîtriser la conversion et le transtypage de types en Python : Guide complet
- Maîtriser les E/S et l'importation de modules en Python : Guide pratique
- Comprendre les variables globales, locales et non locales en Python
- Maîtriser les nombres, la conversion de types et les mathématiques en Python
- Maîtriser les erreurs et exceptions intégrées de Python