1. À propos de rsplit() en Python
En Python, la méthode rsplit() permet de découper une chaîne de caractères en plusieurs parties et de retourner le résultat sous la forme d'une liste.
La lettre r de rsplit signifie "right", c'est-à-dire "droite". La différence avec split() devient particulièrement importante lorsque le nombre de découpages est limité : rsplit() effectue alors les séparations en partant de la droite.
Dans l'exemple suivant, rsplit() est utilisée sans argument. Les caractères d'espacement servent alors de séparateurs.
1 2 3 | texte = "Python est facile" resultat = texte.rsplit() print(resultat) |
Sortie :
1 | ['Python', 'est', 'facile'] |
La méthode rsplit() ne modifie pas la chaîne originale. Les chaînes Python étant immuables, elle renvoie une nouvelle liste contenant les différentes parties obtenues.
Le programme suivant montre que la chaîne originale reste inchangée après l'utilisation de rsplit().
1 2 3 4 | texte = "Python est facile" resultat = texte.rsplit() print("Chaîne :", texte) print("Liste :", resultat) |
Sortie :
1 2 | Chaîne : Python est facile Liste : ['Python', 'est', 'facile'] |
2. Découper une chaîne avec rsplit()
Lorsqu'elle est utilisée sans argument, la méthode rsplit() découpe la chaîne en utilisant les caractères d'espacement. Elle peut ainsi servir à transformer une phrase en une liste de mots.
Dans l'exemple suivant, chaque mot devient un élément de la liste retournée.
1 2 3 | phrase = "Apprendre Python facilement" mots = phrase.rsplit() print(mots) |
Sortie :
1 | ['Apprendre', 'Python', 'facilement'] |
Le résultat étant une liste, chaque partie peut être récupérée grâce à son indice.
1 2 3 4 5 | phrase = "Apprendre Python facilement" mots = phrase.rsplit() print(mots[0]) print(mots[1]) print(mots[2]) |
Sortie :
1 2 3 | Apprendre Python facilement |
La fonction len() permet de connaître le nombre d'éléments obtenus après le découpage.
1 2 3 | phrase = "Apprendre Python facilement" mots = phrase.rsplit() print("Nombre de mots :", len(mots)) |
Sortie :
1 | Nombre de mots : 3 |
Lorsque rsplit() est utilisée sans séparateur explicite, plusieurs espaces consécutifs sont considérés comme une seule zone de séparation.
1 2 3 | texte = "Python est facile" resultat = texte.rsplit() print(resultat) |
Sortie :
1 | ['Python', 'est', 'facile'] |
3. Utiliser un séparateur avec rsplit()
La méthode rsplit() peut recevoir un séparateur comme premier argument. La chaîne est alors découpée aux occurrences de ce séparateur.
Dans l'exemple suivant, le caractère "-" est utilisé comme séparateur.
1 2 3 | texte = "Python-Java-PHP" resultat = texte.rsplit("-") print(resultat) |
Sortie :
1 | ['Python', 'Java', 'PHP'] |
Une virgule peut également être utilisée pour découper une chaîne contenant plusieurs valeurs.
1 2 3 | texte = "Oujda,Rabat,Casablanca" villes = texte.rsplit(",") print(villes) |
Sortie :
1 | ['Oujda', 'Rabat', 'Casablanca'] |
Le séparateur peut être constitué de plusieurs caractères. Python recherche alors la séquence exacte fournie à rsplit().
1 2 3 | texte = "Python::Java::PHP" resultat = texte.rsplit("::") print(resultat) |
Sortie :
1 | ['Python', 'Java', 'PHP'] |
Lorsqu'un séparateur explicite est utilisé, deux séparateurs consécutifs peuvent produire une chaîne vide dans la liste retournée.
1 2 3 | texte = "Python,,Java" resultat = texte.rsplit(",") print(resultat) |
Sortie :
1 | ['Python', '', 'Java'] |
4. Limiter le nombre de découpages avec maxsplit
Le deuxième argument de rsplit() est maxsplit. Il indique le nombre maximal de découpages à effectuer. C'est avec ce paramètre que la particularité de rsplit() apparaît clairement : les séparations sont effectuées en partant de la droite.
Dans l'exemple suivant, un seul découpage est demandé. Le dernier caractère "-" est donc utilisé pour séparer la chaîne.
1 2 3 | texte = "Python-Java-PHP" resultat = texte.rsplit("-", 1) print(resultat) |
Sortie :
1 | ['Python-Java', 'PHP'] |
Avec maxsplit égal à 2, au maximum deux découpages sont effectués en partant de la droite.
1 2 3 | texte = "HTML-CSS-JavaScript-Python" resultat = texte.rsplit("-", 2) print(resultat) |
Sortie :
1 | ['HTML-CSS', 'JavaScript', 'Python'] |
Lorsque suffisamment de séparateurs sont présents, le nombre d'éléments obtenus est égal au maximum à maxsplit + 1.
1 2 3 4 | texte = "a-b-c-d-e" resultat = texte.rsplit("-", 2) print(resultat) print("Nombre d'éléments :", len(resultat)) |
Sortie :
1 2 | ['a-b-c', 'd', 'e'] Nombre d'éléments : 3 |
maxsplit peut également être indiqué comme argument nommé lorsque rsplit() est utilisée sans séparateur explicite.
1 2 3 | phrase = "Python est très facile" resultat = phrase.rsplit(maxsplit=1) print(resultat) |
Sortie :
1 | ['Python est très', 'facile'] |
5. Comprendre la différence entre split() et rsplit()
Les méthodes split() et rsplit() servent toutes les deux à découper une chaîne. Lorsque toutes les occurrences du séparateur sont utilisées, elles produisent le même résultat.
Dans l'exemple suivant, aucun nombre maximal de découpages n'est imposé.
1 2 3 | texte = "HTML-CSS-JavaScript-Python" print("split() :", texte.split("-")) print("rsplit() :", texte.rsplit("-")) |
Sortie :
1 2 | split() : ['HTML', 'CSS', 'JavaScript', 'Python'] rsplit() : ['HTML', 'CSS', 'JavaScript', 'Python'] |
La différence apparaît lorsque maxsplit limite le nombre de découpages. split() effectue les séparations depuis la gauche, tandis que rsplit() les effectue depuis la droite.
1 2 3 | texte = "HTML-CSS-JavaScript-Python" print("split() :", texte.split("-", 1)) print("rsplit() :", texte.rsplit("-", 1)) |
Sortie :
1 2 | split() : ['HTML', 'CSS-JavaScript-Python'] rsplit() : ['HTML-CSS-JavaScript', 'Python'] |
rsplit() est donc particulièrement pratique lorsque l'information que l'on souhaite isoler se trouve à la fin d'une chaîne.
6. Utiliser rsplit() dans des cas pratiques
Récupérer la dernière partie d'une chaîne
rsplit() peut être utilisée pour séparer la dernière partie d'une chaîne du reste du texte. Un seul découpage depuis la droite suffit.
1 2 3 | texte = "cours-python-debutant" resultat = texte.rsplit("-", 1) print(resultat) |
Sortie :
1 | ['cours-python', 'debutant'] |
Séparer un nom de fichier et son extension
Pour un nom de fichier simple dont on sait qu'il contient un point séparant le nom de l'extension, rsplit(".", 1) permet de séparer la partie située après le dernier point.
1 2 3 4 | fichier = "archive.2026.zip" nom, extension = fichier.rsplit(".", 1) print("Nom :", nom) print("Extension :", extension) |
Sortie :
1 2 | Nom : archive.2026 Extension : zip |
Pour une gestion complète et portable des chemins et des fichiers, il est toutefois préférable d'utiliser des outils spécialisés comme pathlib.
Extraire le dernier élément d'un chemin simple
Dans une chaîne utilisant "/" comme séparateur, rsplit("/", 1) permet d'isoler la dernière partie du chemin.
1 2 3 4 | chemin = "documents/python/exercices/exercice1.py" dossier, fichier = chemin.rsplit("/", 1) print("Dossier :", dossier) print("Fichier :", fichier) |
Sortie :
1 2 | Dossier : documents/python/exercices Fichier : exercice1.py |
Séparer une adresse e-mail simple
Pour une adresse e-mail déjà considérée comme valide, rsplit("@", 1) permet de séparer la partie utilisateur du domaine à partir du dernier caractère @.
1 2 3 4 | email = "yassine@example.com" utilisateur, domaine = email.rsplit("@", 1) print("Utilisateur :", utilisateur) print("Domaine :", domaine) |
Sortie :
1 2 | Utilisateur : yassine Domaine : example.com |
Extraire une valeur finale
rsplit() est également utile lorsqu'une donnée finale doit être séparée du reste d'une chaîne contenant plusieurs fois le même séparateur.
1 2 3 4 | donnees = "Yassine-Oujda-2026" informations, annee = donnees.rsplit("-", 1) print("Informations :", informations) print("Année :", annee) |
Sortie :
1 2 | Informations : Yassine-Oujda Année : 2026 |
7. Erreurs et précautions à connaître
Ne pas utiliser une chaîne vide comme séparateur
Une chaîne vide ne peut pas être utilisée comme séparateur. Python déclenche une exception ValueError. Dans l'exemple suivant, l'exception est interceptée afin d'afficher le message correspondant.
1 2 3 4 5 6 | texte = "Python" try: resultat = texte.rsplit("") print(resultat) except ValueError as erreur: print(type(erreur).__name__ + ":", erreur) |
Sortie :
1 | ValueError: empty separator |
Vérifier le résultat avant une affectation multiple
Si le séparateur demandé n'existe pas, rsplit(separateur, 1) retourne une liste contenant uniquement la chaîne originale. Une affectation directe à deux variables provoquerait alors une exception ValueError.
Le programme suivant vérifie le nombre d'éléments avant de réaliser l'affectation.
1 2 3 4 5 6 7 8 | fichier = "document" parties = fichier.rsplit(".", 1) if len(parties) == 2: nom, extension = parties print("Nom :", nom) print("Extension :", extension) else: print("Aucune extension trouvée") |
Sortie :
1 | Aucune extension trouvée |
Comprendre le comportement avec un séparateur explicite
Avec un séparateur explicite, les séparateurs consécutifs peuvent produire des chaînes vides. Il faut en tenir compte lorsque les données peuvent contenir des valeurs manquantes.
1 2 3 | texte = "Python,,Java," resultat = texte.rsplit(",") print(resultat) |
Sortie :
1 | ['Python', '', 'Java', ''] |
8. À retenir !
La méthode rsplit() permet de découper une chaîne de caractères et de retourner les différentes parties sous la forme d'une liste. Sa principale différence avec split() apparaît lorsque le nombre de découpages est limité.
- rsplit() retourne une liste contenant les différentes parties de la chaîne.
- Sans séparateur explicite, rsplit() utilise les caractères d'espacement.
- Un séparateur précis peut être fourni comme premier argument.
- Le séparateur explicite n'est pas conservé dans les éléments retournés.
- Le paramètre maxsplit fixe le nombre maximal de découpages.
- Lorsque maxsplit limite les séparations, rsplit() découpe en partant de la droite.
- split() et rsplit() produisent le même résultat lorsque toutes les occurrences du séparateur sont utilisées.
- Avec maxsplit, split() découpe depuis la gauche et rsplit() depuis la droite.
- rsplit(separateur, 1) est particulièrement utile pour isoler la dernière partie d'une chaîne.
- Une chaîne vide ne peut pas être utilisée comme séparateur.
Le programme suivant résume la différence essentielle entre split() et rsplit() lorsqu'un seul découpage est demandé.
1 2 3 | texte = "HTML-CSS-JavaScript-Python" print("split() :", texte.split("-", 1)) print("rsplit() :", texte.rsplit("-", 1)) |
Sortie :
1 2 | split() : ['HTML', 'CSS-JavaScript-Python'] rsplit() : ['HTML-CSS-JavaScript', 'Python'] |
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/



