1. À propos de removeprefix() et removesuffix() en Python
Python propose les méthodes removeprefix() et removesuffix() pour supprimer respectivement un préfixe ou un suffixe précis d'une chaîne de caractères.
Un préfixe est une séquence de caractères située au début d'une chaîne, tandis qu'un suffixe est une séquence située à la fin. Ces deux méthodes sont disponibles à partir de Python 3.9.
Dans l'exemple suivant, removeprefix() supprime le préfixe "cours_" placé au début de la chaîne.
1 2 3 | texte = "cours_python" resultat = texte.removeprefix("cours_") print(resultat) |
Sortie :
1 | python |
De la même manière, removesuffix() permet de supprimer une séquence précise située à la fin d'une chaîne.
1 2 3 | fichier = "document.pdf" resultat = fichier.removesuffix(".pdf") print(resultat) |
Sortie :
1 | document |
Les chaînes Python étant immuables, ces méthodes ne modifient pas la chaîne originale. Elles renvoient une nouvelle chaîne contenant le résultat.
Le programme suivant permet de vérifier que la chaîne initiale reste inchangée après l'utilisation de removeprefix().
1 2 3 4 | texte = "Python-Tutoriel" resultat = texte.removeprefix("Python-") print("Chaîne originale :", texte) print("Nouvelle chaîne :", resultat) |
Sortie :
1 2 | Chaîne originale : Python-Tutoriel Nouvelle chaîne : Tutoriel |
2. Supprimer un préfixe avec removeprefix()
La méthode removeprefix() vérifie si une chaîne commence par le préfixe indiqué. Si c'est le cas, ce préfixe est supprimé une seule fois au début de la chaîne.
Dans l'exemple suivant, la chaîne commence exactement par "Python-", qui est donc supprimé.
1 2 3 | texte = "Python-Programmation" resultat = texte.removeprefix("Python-") print(resultat) |
Sortie :
1 | Programmation |
Si le préfixe demandé n'est pas présent au début de la chaîne, removeprefix() renvoie la chaîne inchangée et ne provoque aucune erreur.
1 2 3 | texte = "Python-Programmation" resultat = texte.removeprefix("Java-") print(resultat) |
Sortie :
1 | Python-Programmation |
La comparaison est sensible à la casse. Les préfixes "Python-" et "python-" sont donc considérés comme différents.
1 2 3 | texte = "Python-Tutoriel" print(texte.removeprefix("python-")) print(texte.removeprefix("Python-")) |
Sortie :
1 2 | Python-Tutoriel Tutoriel |
removeprefix() supprime uniquement une occurrence exacte située au début. Si le même préfixe apparaît plusieurs fois, un seul appel ne supprime que la première occurrence.
1 2 3 | texte = "test_test_python" resultat = texte.removeprefix("test_") print(resultat) |
Sortie :
1 | test_python |
3. Supprimer un suffixe avec removesuffix()
La méthode removesuffix() fonctionne selon le même principe que removeprefix(), mais elle agit sur la fin de la chaîne. Le suffixe est supprimé uniquement s'il correspond exactement aux derniers caractères.
Dans l'exemple suivant, le suffixe ".txt" est supprimé du nom du fichier.
1 2 3 | fichier = "cours_python.txt" resultat = fichier.removesuffix(".txt") print(resultat) |
Sortie :
1 | cours_python |
Si la chaîne ne se termine pas par le suffixe demandé, removesuffix() renvoie simplement la chaîne originale.
1 2 3 | fichier = "cours_python.pdf" resultat = fichier.removesuffix(".txt") print(resultat) |
Sortie :
1 | cours_python.pdf |
Comme removeprefix(), removesuffix() est sensible à la casse. Le suffixe doit donc correspondre exactement à la fin de la chaîne.
1 2 3 | fichier = "IMAGE.JPG" print(fichier.removesuffix(".jpg")) print(fichier.removesuffix(".JPG")) |
Sortie :
1 2 | IMAGE.JPG IMAGE |
Un seul appel à removesuffix() retire une seule occurrence du suffixe demandé. Si le suffixe apparaît plusieurs fois consécutivement, les occurrences restantes sont conservées.
1 2 3 | texte = "archive.zip.zip" resultat = texte.removesuffix(".zip") print(resultat) |
Sortie :
1 | archive.zip |
4. Utiliser removeprefix() et removesuffix() dans des cas pratiques
Supprimer simultanément un préfixe et un suffixe
Les deux méthodes peuvent être enchaînées lorsque l'on souhaite retirer une séquence précise au début et une autre à la fin d'une chaîne.
1 2 3 | fichier = "cours_python.txt" resultat = fichier.removeprefix("cours_").removesuffix(".txt") print(resultat) |
Sortie :
1 | python |
Nettoyer une adresse Web simple
removeprefix() peut être utilisée pour supprimer un préfixe connu d'une chaîne. Dans cet exemple, le préfixe "https://" est retiré d'une adresse.
1 2 3 | adresse = "https://www.tresfacile.net" resultat = adresse.removeprefix("https://") print(resultat) |
Sortie :
1 | www.tresfacile.net |
Supprimer une extension connue
removesuffix() est pratique lorsqu'une extension précise doit être retirée d'un nom de fichier. Elle ne supprime l'extension que si celle-ci apparaît exactement à la fin.
1 2 3 | fichier = "programme.py" nom = fichier.removesuffix(".py") print(nom) |
Sortie :
1 | programme |
Traiter plusieurs chaînes
Il est possible d'utiliser removesuffix() dans une boucle afin de supprimer un suffixe précis sur plusieurs chaînes.
1 2 3 | fichiers = ["cours.txt", "exercice.txt", "solution.txt"] for fichier in fichiers: print(fichier.removesuffix(".txt")) |
Sortie :
1 2 3 | cours exercice solution |
Différence entre removeprefix() et lstrip()
Il est important de ne pas confondre removeprefix() avec lstrip(). removeprefix() considère son argument comme une séquence exacte, tandis que lstrip() considère son argument comme un ensemble de caractères pouvant être supprimés successivement au début de la chaîne.
L'exemple suivant montre clairement cette différence. removeprefix("abc") recherche exactement le préfixe "abc", alors que lstrip("abc") retire successivement tous les caractères a, b ou c situés au début.
1 2 3 | texte = "aabbccPython" print("removeprefix() :", texte.removeprefix("abc")) print("lstrip() :", texte.lstrip("abc")) |
Sortie :
1 2 | removeprefix() : aabbccPython lstrip() : Python |
Différence entre removesuffix() et rstrip()
La même différence existe entre removesuffix() et rstrip(). removesuffix() recherche un suffixe exact, tandis que rstrip() supprime tous les caractères appartenant à l'ensemble indiqué tant qu'ils apparaissent à la fin.
1 2 3 | texte = "Pythonabccba" print("removesuffix() :", texte.removesuffix("abc")) print("rstrip() :", texte.rstrip("abc")) |
Sortie :
1 2 | removesuffix() : Pythonabccba rstrip() : Python |
5. À retenir !
Les méthodes removeprefix() et removesuffix() permettent de supprimer proprement une séquence exacte située respectivement au début ou à la fin d'une chaîne de caractères.
- removeprefix() supprime un préfixe uniquement s'il se trouve exactement au début de la chaîne.
- removesuffix() supprime un suffixe uniquement s'il se trouve exactement à la fin de la chaîne.
- Si le préfixe ou le suffixe demandé est absent, la chaîne est renvoyée inchangée.
- Ces méthodes sont sensibles à la casse.
- Un appel supprime une seule occurrence exacte du préfixe ou du suffixe demandé.
- Les chaînes Python sont immuables : la chaîne originale n'est pas modifiée.
- Les méthodes removeprefix() et removesuffix() sont disponibles à partir de Python 3.9.
- Les deux méthodes peuvent être enchaînées pour supprimer à la fois un préfixe et un suffixe.
- lstrip() et rstrip() ne sont pas équivalentes à removeprefix() et removesuffix() lorsqu'un argument est fourni.
- lstrip() et rstrip() interprètent leur argument comme un ensemble de caractères, alors que removeprefix() et removesuffix() recherchent une séquence exacte.
Le programme suivant résume le fonctionnement des deux méthodes en supprimant un préfixe puis un suffixe précis.
1 2 3 4 5 | texte = "cours_python.html" sans_prefixe = texte.removeprefix("cours_") resultat = sans_prefixe.removesuffix(".html") print(sans_prefixe) print(resultat) |
Sortie :
1 2 | python.html 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/



