Pour gérer les fichiers, il faut utiliser les librairies os et shutdown.
I. Obtenir des informations
os.getcwd()
os.getcwd() renvoie le répertoire de travail courant sous forme de chaîne de caractères.
os.listdir()
os.listdir() renvoie le contenu du répertoire de travail courant sous forme de liste de chaînes. 😄
os.walk("mon_repertoire_de_depart")
os.walk() donne des informations sur le répertoire et les sous-répertoires actuels. Il fonctionne à travers les répertoires du répertoire de démarrage spécifié.
os.walk() renvoie les éléments suivants pour chaque répertoire qu'il traverse :
chemin du répertoire actuel sous forme de chaîne
noms de sous-répertoires dans le répertoire courant sous forme de listes de chaînes
noms de fichiers dans le répertoire actuel sous forme de liste de chaînes
Il le fait pour chaque répertoire !
Il est souvent utile d'utiliser os.walk() avec une boucle for pour parcourir le contenu d'un répertoire et de ses sous-répertoires. Par exemple, le code suivant imprimera tous les fichiers dans les répertoires et sous-répertoires du répertoire de travail actuel.
II. Changer les éléments
os.chdir("/absolu/ou/relatif/chemin")
Cette méthode remplace le répertoire de travail actuel par le chemin absolu ou relatif fourni.
Si votre code apporte ensuite d'autres modifications au système de fichiers, c'est une bonne idée de gérer toutes les exceptions levées lors de l'utilisation de cette méthode avec try-except. Sinon, vous risquez de supprimer des répertoires ou des fichiers que vous ne souhaitiez pas. 😢
os.path.join()
Le module os.path a un certain nombre de méthodes utiles pour les manipulations courantes des noms de chemin. Vous pouvez l'utiliser pour rechercher des informations sur les noms de répertoires et des parties de noms de répertoires. Le module dispose également de méthodes pour vérifier si un fichier ou un répertoire existe.
os.makedirs("dir1/dir2")
os.makedirs() crée des répertoires. La méthode mkdir() crée également des répertoires, mais pas de répertoires intermédiaires.
Shutil.copy2("fichier_source", "destination")
Il existe de nombreuses manières de copier des fichiers et des répertoires en Python. Shutil.copy2() est un bon choix car il essaie de préserver autant que possible les métadonnées du fichier source.
III. Déplacer des choses
Shutil.move("fichier_source", "destination")
Utilisez shutdown.move() pour changer l'emplacement d'un fichier. Il utilise copy2 par défaut sous le capot.
os.remove("mon_fichier")
Supprime un fichier.
Shutil.rmtree("mon_répertoire")
Shutil.rmtree() supprime un répertoire et tous les fichiers et répertoires qu'il contient.
Attention aux fonctions qui suppriment des éléments ! Vous voudrez peut-être imprimer ce qui sera supprimé sous forme d'essai avec print(). Ensuite, exécutez le substitut dans votre fonction de suppression pour print() lorsque vous êtes sûr qu'il ne supprimera pas les mauvais fichiers. Chapeau à Al Sweigart pour cette idée dans Automatiser les trucs ennuyeux avec Python.