- À propos de partition() et rpartition() en Python
- Séparer une chaîne avec partition()
- Séparer une chaîne avec rpartition()
- Comprendre la différence entre partition() et rpartition()
- Comprendre le résultat lorsque le séparateur est absent
- Récupérer directement les trois parties obtenues
- Différence entre partition() et split()
- Exemples pratiques avec partition() et rpartition()
- À retenir !
1. À propos de partition() et rpartition() en Python
En Python, les méthodes partition() et rpartition() permettent de séparer une chaîne de caractères en trois parties autour d'un séparateur donné.
Ces méthodes retournent toujours un tuple de trois éléments : la partie située avant le séparateur, le séparateur lui-même et la partie située après le séparateur.
Dans l'exemple suivant, partition() sépare la chaîne autour du caractère "=".
1 2 3 | texte = "langage=Python" resultat = texte.partition("=") print(resultat) |
Sortie :
1 | ('langage', '=', 'Python') |
La méthode partition() utilise la première occurrence du séparateur, tandis que rpartition() utilise sa dernière occurrence.
Le programme suivant permet d'observer immédiatement cette différence.
1 2 3 | texte = "Python-Java-PHP" print("partition() :", texte.partition("-")) print("rpartition() :", texte.rpartition("-")) |
Sortie :
1 2 | partition() : ('Python', '-', 'Java-PHP') rpartition() : ('Python-Java', '-', 'PHP') |
2. Séparer une chaîne avec partition()
La méthode partition() recherche la première occurrence du séparateur dans la chaîne. Elle découpe ensuite la chaîne en trois éléments.
Dans l'exemple suivant, le premier caractère ":" est utilisé pour effectuer la séparation.
1 2 3 | texte = "nom:Yassine:Oujda" resultat = texte.partition(":") print(resultat) |
Sortie :
1 | ('nom', ':', 'Yassine:Oujda') |
Le premier élément du tuple correspond à la partie située avant le séparateur, le deuxième contient le séparateur et le troisième contient tout ce qui se trouve après celui-ci.
Les différents éléments peuvent être récupérés grâce à leurs indices.
1 2 3 4 5 | texte = "langage=Python" resultat = texte.partition("=") print("Avant :", resultat[0]) print("Séparateur :", resultat[1]) print("Après :", resultat[2]) |
Sortie :
1 2 3 | Avant : langage Séparateur : = Après : Python |
Le séparateur peut contenir plusieurs caractères. partition() recherche alors cette séquence exacte dans la chaîne.
1 2 3 | texte = "Python::Programmation" resultat = texte.partition("::") print(resultat) |
Sortie :
1 | ('Python', '::', 'Programmation') |
3. Séparer une chaîne avec rpartition()
La méthode rpartition() fonctionne sur le même principe que partition(), mais elle recherche la dernière occurrence du séparateur.
Dans l'exemple suivant, le dernier caractère ":" est utilisé pour effectuer la séparation.
1 2 3 | texte = "nom:Yassine:Oujda" resultat = texte.rpartition(":") print(resultat) |
Sortie :
1 | ('nom:Yassine', ':', 'Oujda') |
rpartition() est particulièrement utile lorsque l'information à isoler se trouve après la dernière occurrence d'un séparateur.
Dans l'exemple suivant, le dernier point permet de séparer simplement l'extension du reste du nom de fichier.
1 2 3 | fichier = "archive.2026.zip" resultat = fichier.rpartition(".") print(resultat) |
Sortie :
1 | ('archive.2026', '.', 'zip') |
Comme partition(), rpartition() conserve le séparateur dans le deuxième élément du tuple retourné.
1 2 3 4 5 | texte = "HTML-CSS-JavaScript-Python" avant, separateur, apres = texte.rpartition("-") print("Avant :", avant) print("Séparateur :", separateur) print("Après :", apres) |
Sortie :
1 2 3 | Avant : HTML-CSS-JavaScript Séparateur : - Après : Python |
4. Comprendre la différence entre partition() et rpartition()
La différence essentielle entre partition() et rpartition() concerne l'occurrence du séparateur utilisée pour effectuer le découpage.
partition() utilise la première occurrence du séparateur, tandis que rpartition() utilise la dernière.
Dans l'exemple suivant, la chaîne contient plusieurs tirets, ce qui permet de bien observer cette différence.
1 2 3 | texte = "Python-Java-PHP-JavaScript" print("partition() :", texte.partition("-")) print("rpartition() :", texte.rpartition("-")) |
Sortie :
1 2 | partition() : ('Python', '-', 'Java-PHP-JavaScript') rpartition() : ('Python-Java-PHP', '-', 'JavaScript') |
Si le séparateur apparaît une seule fois, partition() et rpartition() produisent le même résultat.
1 2 3 | texte = "nom=Yassine" print("partition() :", texte.partition("=")) print("rpartition() :", texte.rpartition("=")) |
Sortie :
1 2 | partition() : ('nom', '=', 'Yassine') rpartition() : ('nom', '=', 'Yassine') |
Le choix entre les deux méthodes dépend donc de la position du séparateur qui doit être utilisée pour diviser la chaîne.
5. Comprendre le résultat lorsque le séparateur est absent
Lorsque le séparateur recherché n'existe pas, partition() et rpartition() ne déclenchent pas d'exception. Elles retournent toujours un tuple contenant exactement trois éléments.
Avec partition(), si le séparateur est absent, la chaîne originale est placée dans le premier élément et les deux autres éléments sont des chaînes vides.
1 2 3 | texte = "Python" resultat = texte.partition("-") print(resultat) |
Sortie :
1 | ('Python', '', '') |
Avec rpartition(), le comportement est différent : lorsque le séparateur est absent, les deux premiers éléments sont des chaînes vides et la chaîne originale est placée dans le troisième élément.
1 2 3 | texte = "Python" resultat = texte.rpartition("-") print(resultat) |
Sortie :
1 | ('', '', 'Python') |
Le deuxième élément du tuple permet donc de vérifier facilement si le séparateur a réellement été trouvé.
1 2 3 4 5 6 7 8 | texte = "langage=Python" avant, separateur, apres = texte.partition("=") if separateur: print("Séparateur trouvé") print("Avant :", avant) print("Après :", apres) else: print("Séparateur introuvable") |
Sortie :
1 2 3 | Séparateur trouvé Avant : langage Après : Python |
Une chaîne vide ne peut pas être utilisée comme séparateur. Python déclenche alors une exception ValueError. Le programme suivant intercepte cette exception pour afficher son type.
1 2 3 4 5 6 | texte = "Python" try: resultat = texte.partition("") print(resultat) except ValueError as erreur: print(type(erreur).__name__ + ":", erreur) |
Sortie :
1 | ValueError: empty separator |
6. Récupérer directement les trois parties obtenues
Comme partition() et rpartition() retournent toujours un tuple de trois éléments, il est pratique d'utiliser l'affectation multiple pour placer directement chaque partie dans une variable.
Dans l'exemple suivant, la partie gauche, le séparateur et la partie droite sont directement affectés à trois variables.
1 2 3 4 5 | texte = "langage=Python" cle, separateur, valeur = texte.partition("=") print("Clé :", cle) print("Séparateur :", separateur) print("Valeur :", valeur) |
Sortie :
1 2 3 | Clé : langage Séparateur : = Valeur : Python |
Cette technique est particulièrement pratique pour traiter des chaînes structurées contenant une paire clé-valeur.
1 2 3 4 5 | configuration = "ville=Oujda" cle, separateur, valeur = configuration.partition("=") if separateur: print("Clé :", cle) print("Valeur :", valeur) |
Sortie :
1 2 | Clé : ville Valeur : Oujda |
L'affectation multiple fonctionne de la même manière avec rpartition(). Elle permet par exemple de récupérer directement la dernière partie d'une chaîne.
1 2 3 4 | texte = "cours-python-debutant" debut, separateur, fin = texte.rpartition("-") print("Début :", debut) print("Fin :", fin) |
Sortie :
1 2 | Début : cours-python Fin : debutant |
7. Différence entre partition() et split()
Les méthodes partition() et split() permettent toutes les deux de séparer une chaîne, mais leur fonctionnement et leur résultat sont différents.
partition() effectue une seule séparation autour de la première occurrence du séparateur et conserve ce séparateur dans le résultat. Elle retourne toujours un tuple de trois éléments.
split() peut au contraire découper la chaîne à toutes les occurrences du séparateur et ne conserve pas celui-ci dans la liste retournée.
1 2 3 | texte = "Python-Java-PHP" print("partition() :", texte.partition("-")) print("split() :", texte.split("-")) |
Sortie :
1 2 | partition() : ('Python', '-', 'Java-PHP') split() : ['Python', 'Java', 'PHP'] |
Avec maxsplit=1, split() limite également le découpage à une seule séparation, mais le séparateur n'est toujours pas conservé et le résultat est une liste de deux éléments.
1 2 3 | texte = "Python-Java-PHP" print("partition() :", texte.partition("-")) print("split() :", texte.split("-", 1)) |
Sortie :
1 2 | partition() : ('Python', '-', 'Java-PHP') split() : ['Python', 'Java-PHP'] |
partition() est donc particulièrement adaptée lorsqu'on souhaite séparer une chaîne en une partie gauche et une partie droite tout en sachant si le séparateur a été trouvé.
8. Exemples pratiques avec partition() et rpartition()
Séparer une paire clé-valeur
partition() permet de séparer facilement une clé de sa valeur lorsque les deux parties sont délimitées par un caractère comme "=".
1 2 3 4 5 | texte = "utilisateur=Yassine" cle, separateur, valeur = texte.partition("=") if separateur: print("Clé :", cle) print("Valeur :", valeur) |
Sortie :
1 2 | Clé : utilisateur Valeur : Yassine |
Séparer un protocole du reste d'une adresse
partition() peut être utilisée pour séparer une chaîne autour de la première occurrence d'un séparateur composé de plusieurs caractères.
1 2 3 4 | adresse = "https://www.tresfacile.net" protocole, separateur, domaine = adresse.partition("://") print("Protocole :", protocole) print("Domaine :", domaine) |
Sortie :
1 2 | Protocole : https Domaine : www.tresfacile.net |
Récupérer une extension de fichier simple
rpartition() permet de séparer une chaîne au niveau du dernier point. Cela peut être pratique pour illustrer le traitement d'un nom de fichier simple contenant plusieurs points.
1 2 3 4 5 | fichier = "cours.python.pdf" nom, separateur, extension = fichier.rpartition(".") if separateur: print("Nom :", nom) print("Extension :", extension) |
Sortie :
1 2 | Nom : cours.python Extension : pdf |
Pour gérer de véritables chemins et noms de fichiers de manière portable, les outils spécialisés comme pathlib sont généralement préférables.
Récupérer le dernier élément d'un chemin simple
Pour une chaîne utilisant "/" comme séparateur, rpartition("/") permet de séparer le dernier élément du reste du chemin.
1 2 3 4 | chemin = "documents/python/cours.txt" dossier, separateur, fichier = chemin.rpartition("/") print("Dossier :", dossier) print("Fichier :", fichier) |
Sortie :
1 2 | Dossier : documents/python Fichier : cours.txt |
Séparer un nom et une valeur contenant le même séparateur
partition() est utile lorsque seule la première occurrence du séparateur doit être utilisée. Les occurrences suivantes restent dans la partie droite.
1 2 3 4 | texte = "message=Python=facile" nom, separateur, valeur = texte.partition("=") print("Nom :", nom) print("Valeur :", valeur) |
Sortie :
1 2 | Nom : message Valeur : Python=facile |
9. À retenir !
Les méthodes partition() et rpartition() permettent de séparer une chaîne autour d'un séparateur tout en conservant celui-ci dans le résultat.
- partition() effectue la séparation autour de la première occurrence du séparateur.
- rpartition() effectue la séparation autour de la dernière occurrence du séparateur.
- Les deux méthodes retournent toujours un tuple de trois éléments.
- Le premier élément contient la partie située avant le séparateur.
- Le deuxième élément contient le séparateur lui-même lorsqu'il a été trouvé.
- Le troisième élément contient la partie située après le séparateur.
- Si le séparateur est absent, partition() retourne la chaîne originale dans le premier élément.
- Si le séparateur est absent, rpartition() retourne la chaîne originale dans le troisième élément.
- Une chaîne vide ne peut pas être utilisée comme séparateur.
- partition() et rpartition() sont particulièrement pratiques avec l'affectation multiple.
Le programme suivant résume la différence essentielle entre partition() et rpartition() lorsqu'un séparateur apparaît plusieurs fois.
1 2 3 | texte = "Python-Java-PHP" print("partition() :", texte.partition("-")) print("rpartition() :", texte.rpartition("-")) |
Sortie :
1 2 | partition() : ('Python', '-', 'Java-PHP') rpartition() : ('Python-Java', '-', 'PHP') |
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/



