Python pathlib : fonctionnement et avantages du module
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 programmation. 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 programmation, il existe différentes méthodes pour travailler 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, indépendamment du système d’exploitation.
Ce module est particulièrement utile si vous ne souhaitez pas seulement lire ou modifier les chemins d’accès, mais aussi effectuer des tâches et des opérations supplémentaires. Il permet, entre autres, de créer et de copier des fichiers individuels et leurs composants. Cette tâche est simplifiée par l’interface supérieure de Python pathlib
. Ce module fait partie de la bibliothèque standard et remplace ou combine de nombreuses autres méthodes.
- Sécurité des données
- Outils de collaboration intégrés
- Hébergement dans des data centers européens
Représentation orientée objet des chemins d’accès
L’un des grands avantages de Python pathlib
est que ce module permet aux utilisateurs de représenter les chemins non plus comme des chaînes de caractères, mais d’avoir une représentation orientée objet. Alors que la méthode précédente était souvent laborieuse et nécessitait plusieurs déclarations, même pour des tâches simples, la syntaxe du nouveau module a été considérablement simplifiée. Comme vous travaillerez généralement avec la classe Path
, il vous suffit de l’importer avant de travailler sur un projet. Cela vous permettra de créer un code plus compact par la suite. Pour l’importer, utilisez simplement la commande suivante :
from pathlib import Path
pythonPour créer une instance path
, vous pouvez déjà utiliser Python pathlib
. Pour cela, le code suivant convient, dans lequel nous utilisons les deux composants « 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)
pythonLa sortie ressemblerait alors à ceci, à titre d’exemple :
couleurs/bleu.txt
pythonDans la sortie, Python place donc le séparateur du système d’exploitation entre les deux composants. 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épertoires avec Python pathlib
Après avoir importé Path
, vous pouvez utiliser les différentes méthodes de la classe avec Python pathlib
. Cela inclut, entre autres, l’accès à certains répertoires. Par exemple, si vous exécutez le code suivant, vous accédez à votre répertoire de travail actuel :
from pathlib import Path
Path.cwd()
pythonCeci est important, entre autres, si vous voulez ouvrir un fichier dans le même répertoire que celui dans lequel votre script actuel est exécuté.
Il est également possible d’accéder au répertoire Home de l’utilisateur actuel avec pathlib
de Python. Il est recommandé de choisir ce répertoire comme point de départ, afin de pouvoir travailler avec les chemins d’accès correspondants sur des ordinateurs différents, si cela s’avère nécessaire. Le code correspondant est le suivant :
from pathlib import Path
Path.home()
pythonAccès à l’aide d’une chaîne de caractères
Au lieu de commencer par votre répertoire de travail ou votre répertoire personnel, il est toujours possible d’accéder à un fichier ou un répertoire à l’aide d’une chaîne de caractères avec Python pathlib
. Voici un exemple :
from pathlib import Path
Path(r"C:\Users\name\dossier\fichier.txt")
pythonLa chaîne est alors convertie en chemin d’accès, ce qui facilite son utilisation. 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 imprimable.
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 caractères. Pour cela, vous avez deux possibilité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)
pythonVous 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")
pythonUtiliser les composants individuels
Si vous souhaitez décomposer un chemin en ses composants 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épertoire..parent
: identifie le répertoire dans lequel se trouve le fichier ; si le chemin est lui-même un répertoire, le répertoire 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 correspondantes sont alors les suivantes :
'C:\\'
'fichier.txt'
WindowsPath('C:/Users/name/dossier')
WindowsPath('C:/Users/name')
'fichier'
'.txt''
pythonLire 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 considérablement le code. Pour mieux illustrer son fonctionnement, 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
textNous allons maintenant utiliser la fonction standard open()
avec Python pathlib
pour filtrer et afficher tous les animaux et plantes de la liste. Le code correspondant 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("*")]
pythonModifier 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 correspondant 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)
pythonCopier 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())
pythonDé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 supplémentaire. Il est donc important de faire preuve de prudence afin de ne pas perdre d’informations importantes. Utilisez .replace()
pour déplacer un fichier. Si un fichier portant le même nom existe déjà à l’emplacement de destination, 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 globalement à ceci :
from pathlib import Path
source = Path("bleu.py")
destination = Path("rouge.py")
if not destination.exists():
source.replace(destination)
pythonCré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()
pythonAvec GitHub, vous allez droit au but : avec Deploy Now de IONOS vous propose des déploiements automatisés que vous mettez en œuvre en seulement trois étapes. Selon le principe « push, build and deploy » (« pousser, construire et déployer »), vous effectuez les changements encore plus rapidement. Nous nous ferons un plaisir de vous conseiller sur nos différents modèles tarifaires !