Le module Python pathlib offre une méthode très efficace pour interagir avec les chemins du système de fichiers dans le langage de pro­gram­ma­tion. En plus d’être simple à manipuler, la concision du code est un avantage majeur de ce module.

Qu’est-ce que pathlib en Python ?

En Python, le populaire langage de pro­gram­ma­tion, il existe dif­fé­rentes méthodes pour tra­vail­ler avec les chemins du système de fichiers. Par exemple, depuis la version 3.4, Python propose pathlib, un autre outil très utile et complet pour interagir avec les chemins d’accès, in­dé­pen­dam­ment du système d’ex­ploi­ta­tion.

Ce module est par­ti­cu­liè­re­ment utile si vous ne souhaitez pas seulement lire ou modifier les chemins d’accès, mais aussi effectuer des tâches et des opé­ra­tions sup­plé­men­taires. Il permet, entre autres, de créer et de copier des fichiers in­di­vi­duels et leurs com­po­sants. Cette tâche est sim­pli­fiée par l’interface su­pé­rieure de Python pathlib. Ce module fait partie de la bi­blio­thèque standard et remplace ou combine de nom­breuses autres méthodes.

Managed Nextcloud de IONOS Cloud
Tra­vail­lez en équipe dans votre propre Cloud
  • Sécurité des données
  • Outils de col­la­bo­ra­tion intégrés
  • Hé­ber­ge­ment dans des data centers européens

Re­pré­sen­ta­tion orientée objet des chemins d’accès

L’un des grands avantages de Python pathlib est que ce module permet aux uti­li­sa­teurs de re­pré­sen­ter les chemins non plus comme des chaînes de ca­rac­tères, mais d’avoir une re­pré­sen­ta­tion orientée objet. Alors que la méthode pré­cé­dente était souvent la­bo­rieuse et né­ces­si­tait plusieurs dé­cla­ra­tions, même pour des tâches simples, la syntaxe du nouveau module a été con­si­dé­ra­ble­ment sim­pli­fiée. Comme vous tra­vail­le­rez gé­né­ra­le­ment avec la classe Path, il vous suffit de l’importer avant de tra­vail­ler sur un projet. Cela vous permettra de créer un code plus compact par la suite. Pour l’importer, utilisez sim­ple­ment la commande suivante :

from pathlib import Path
python

Pour créer une instance path, vous pouvez déjà utiliser Python pathlib. Pour cela, le code suivant convient, dans lequel nous utilisons les deux com­po­sants « couleurs » et « bleu.txt ». Une simple commande permet ensuite de créer une nouvelle instance :

from pathlib import Path
bleu = Path("couleurs", "bleu.txt")
print(bleu)
python

La sortie res­sem­ble­rait alors à ceci, à titre d’exemple :

couleurs/bleu.txt
python

Dans la sortie, Python place donc le sé­pa­ra­teur du système d’ex­ploi­ta­tion entre les deux com­po­sants. Dans notre exemple, il s’agit d’une barre oblique droite /, mais sur une machine Windows, la sortie peut contenir une barre oblique inverse \ à la place. Pour Linux et macOS, la barre oblique est conservée.

Appeler des ré­per­toires avec Python pathlib

Après avoir importé Path, vous pouvez utiliser les dif­fé­rentes méthodes de la classe avec Python pathlib. Cela inclut, entre autres, l’accès à certains ré­per­toires. Par exemple, si vous exécutez le code suivant, vous accédez à votre ré­per­toire de travail actuel :

from pathlib import Path
Path.cwd()
python

Ceci est important, entre autres, si vous voulez ouvrir un fichier dans le même ré­per­toire que celui dans lequel votre script actuel est exécuté.

Il est également possible d’accéder au ré­per­toire Home de l’uti­li­sa­teur actuel avec pathlib de Python. Il est re­com­mandé de choisir ce ré­per­toire comme point de départ, afin de pouvoir tra­vail­ler avec les chemins d’accès cor­res­pon­dants sur des or­di­na­teurs dif­fé­rents, si cela s’avère né­ces­saire. Le code cor­res­pon­dant est le suivant :

from pathlib import Path
Path.home()
python

Accès à l’aide d’une chaîne de ca­rac­tères

Au lieu de commencer par votre ré­per­toire de travail ou votre ré­per­toire personnel, il est toujours possible d’accéder à un fichier ou un ré­per­toire à l’aide d’une chaîne de ca­rac­tères avec Python pathlib. Voici un exemple :

from pathlib import Path
Path(r"C:\Users\name\dossier\fichier.txt")
python

La chaîne est alors convertie en chemin d’accès, ce qui facilite son uti­li­sa­tion. Le petit r devant la chaîne indique qu’il s’agit d’une « chaîne littérale brute ». Cela permet de s’assurer que la barre oblique inverse est bien utilisée dans cette fonction. Elle peut également être utilisée pour indiquer une variable non im­pri­mable.

Connecter des chemins ou des chaînes

Une autre méthode pour créer un nouveau chemin avec pathlib de Python est de connecter des chemins ou des chaînes de ca­rac­tères. Pour cela, vous avez deux pos­si­bi­li­tés.

En utilisant une seule barre oblique, vous reliez deux éléments pour former un nouveau chemin. Par exemple :

from pathlib import Path
for chemin_fichier in Path.cwd().glob("*.txt"):
    nouveau_chemin = Path("exemple") / chemin_fichier.name
    chemin_fichier.rename(nouveau_chemin)
python

Vous pouvez aussi utiliser la méthode joinpath() pour obtenir le même résultat :

from pathlib import Path
Path.home().joinpath("exemple", "sous_dossier", "fichier.py")
python

Utiliser les com­po­sants in­di­vi­duels

Si vous souhaitez dé­com­po­ser un chemin en ses com­po­sants et les utiliser, Python pathlib vous fournit également l’outil approprié. Le code suivant en donne quelques exemples :

from pathlib import Path
path = Path(r"C:\Users\name\dossier\fichier.txt")
path
path.anchor
path.name
path.parent
path.parent.parent
path.stem
path.suffix
python
  • .anchor : renvoie la partie racine du chemin, comme ‘C:’ sous Windows ou ‘/’ sous Unix.
  • .name : se limite au nom du fichier, sans référence au ré­per­toire.
  • .parent : identifie le ré­per­toire dans lequel se trouve le fichier ; si le chemin est lui-même un ré­per­toire, le ré­per­toire parent est utilisé.
  • .stem : se concentre sur le nom du fichier, sans l’extension.
  • .suffix : renvoie l’extension du fichier (y compris le point).

Les sorties cor­res­pon­dantes sont alors les suivantes :

'C:\\'
'fichier.txt'
WindowsPath('C:/Users/name/dossier')
WindowsPath('C:/Users/name')
'fichier'
'.txt''
python

Lire ou écrire des fichiers

Bien qu’il soit possible d’écrire ou de lire des fichiers par d’autres moyens, Python pathlib vous permet de réduire con­si­dé­ra­ble­ment le code. Pour mieux illustrer son fonc­tion­ne­ment, nous allons créer une liste simple contenant des animaux et des plantes. Voici à quoi elle ressemble :

<!-- liste_exemple.md ->
# Liste d'exemples
## Animaux
* Chien
* Chat
* Souris
## Plantes
* Rose
* Œillet
text

Nous allons main­te­nant utiliser la fonction standard open() avec Python pathlib pour filtrer et afficher tous les animaux et plantes de la liste. Le code cor­res­pon­dant ressemble à ceci :

from pathlib import Path
path = Path.cwd() / "liste_exemple.md"
with path.open(mode="r", encoding="utf-8") as md_file:
    content = md_file.read()
sortie = [line for line in content.splitlines() if line.startswith("*")]
python

Modifier les noms de fichiers

Pour changer les noms de fichiers, quelques lignes de code suffisent également avec Python pathlib. Le module utilise pour cela la méthode .with_name(), qui permet de modifier le nom et l’extension du fichier. Le code cor­res­pon­dant suit ce modèle :

from pathlib import Path
chemin_md = Path("/Users/name/dossier/bleu.md")
chemin_txt = chemin_md.with_name("rouge.txt")
chemin_md.replace(chemin_txt)
python

Copier des fichiers avec Python pathlib

Bien que Path n’ait pas de méthode pour copier en lui-même, vous pouvez utiliser .with_stem() pour dupliquer un fichier. Cela permet de créer un nouveau nom de fichier sans modifier l’extension du fichier. Voici un exemple du code approprié :

from pathlib import Path
source = Path("liste_exemple.md")
destination = source.with_stem("nouvel_exemple")
destination.write_bytes(source.read_bytes())
python

Déplacer des fichiers

Si vous souhaitez déplacer ou supprimer des fichiers avec Python pathlib, vous devez garder à l’esprit que le système ne posera aucune question sup­plé­men­taire. Il est donc important de faire preuve de prudence afin de ne pas perdre d’in­for­ma­tions im­por­tantes. Utilisez .replace() pour déplacer un fichier. Si un fichier portant le même nom existe déjà à l’em­pla­ce­ment de des­ti­na­tion, il sera écrasé. Ici aussi, vous devez donc être sûr de votre décision ! Il est toutefois possible de vérifier à l’avance si ce risque existe. Le code ressemble alors glo­ba­le­ment à ceci :

from pathlib import Path
source = Path("bleu.py")
destination = Path("rouge.py")
if not destination.exists():
    source.replace(destination)
python

Créer des fichiers vides

Pour utiliser Python pathlib afin de créer un fichier vide, écrivez ce code :

from pathlib import Path
filename = Path("nouveau.txt")
filename.exists()
filename.touch()
filename.exists()
filename.touch()
python
Conseil

Avec GitHub, vous allez droit au but : avec Deploy Now de IONOS vous propose des dé­ploie­ments au­to­ma­ti­sés que vous mettez en œuvre en seulement trois étapes. Selon le principe « push, build and deploy » (« pousser, cons­truire et déployer »), vous effectuez les chan­ge­ments encore plus ra­pi­de­ment. Nous nous ferons un plaisir de vous con­seil­ler sur nos dif­fé­rents modèles ta­ri­faires !

Aller au menu principal