- À propos de replace() en Python
- Syntaxe de la méthode replace()
- Remplacer un mot dans une chaîne
- Remplacer un caractère dans une chaîne
- Remplacer toutes les occurrences d'une sous-chaîne
- Limiter le nombre de remplacements
- Comprendre que replace() ne modifie pas la chaîne originale
- Supprimer du texte avec replace()
- Remplacer les espaces et les caractères spéciaux
- Sensibilité à la casse de replace()
- Effectuer plusieurs remplacements successifs
- Exemples pratiques avec replace()
- À retenir !
La méthode replace() permet de remplacer du texte à l'intérieur d'une chaîne de caractères en Python. Elle recherche une sous-chaîne donnée et la remplace par une autre chaîne. Elle peut remplacer toutes les occurrences trouvées ou seulement un nombre déterminé d'entre elles.
Dans ce tutoriel, nous allons découvrir le fonctionnement de replace(), sa syntaxe, son paramètre permettant de limiter le nombre de remplacements et plusieurs utilisations pratiques pour manipuler les chaînes de caractères.
1. À propos de replace() en Python
Les objets de type str possèdent une méthode appelée replace(). Celle-ci permet de rechercher une sous-chaîne dans une chaîne et de la remplacer par une autre.
Dans l'exemple suivant, nous remplaçons le mot Java par Python dans une phrase.
1 2 3 | texte = "J'apprends Java." nouveau_texte = texte.replace("Java", "Python") print(nouveau_texte) |
Sortie :
1 | J'apprends Python. |
La méthode replace() recherche la chaîne Java et la remplace par Python.
2. Syntaxe de la méthode replace()
La méthode replace() reçoit obligatoirement la sous-chaîne à rechercher et celle qui doit la remplacer. Elle accepte également un troisième argument facultatif permettant de limiter le nombre de remplacements.
La syntaxe générale de la méthode est la suivante :
1 | chaine.replace(ancienne, nouvelle, nombre) |
Sortie :
1 | Une nouvelle chaîne contenant les remplacements demandés |
Les paramètres de replace() ont les rôles suivants :
- ancienne : sous-chaîne que l'on souhaite rechercher et remplacer ;
- nouvelle : chaîne qui remplacera l'ancienne ;
- nombre : paramètre facultatif indiquant le nombre maximal de remplacements à effectuer.
Dans sa forme la plus courante, seuls les deux premiers arguments sont utilisés. Toutes les occurrences de la sous-chaîne recherchée sont alors remplacées.
1 2 3 | texte = "Python est simple. Python est puissant." resultat = texte.replace("Python", "Java") print(resultat) |
Sortie :
1 | Java est simple. Java est puissant. |
Comme aucun troisième argument n'a été fourni, les deux occurrences de Python ont été remplacées.
3. Remplacer un mot dans une chaîne
L'une des utilisations les plus courantes de replace() consiste à remplacer un mot par un autre dans une phrase ou dans un texte.
Dans l'exemple suivant, nous remplaçons le mot difficile par le mot facile.
1 2 3 | phrase = "Python est difficile à apprendre." resultat = phrase.replace("difficile", "facile") print(resultat) |
Sortie :
1 | Python est facile à apprendre. |
La sous-chaîne difficile est remplacée par facile sans modifier le reste de la phrase.
Remplacer une expression complète
La valeur recherchée peut également être composée de plusieurs mots. replace() peut donc remplacer une expression complète.
1 2 3 | texte = "J'apprends le langage Python." resultat = texte.replace("le langage Python", "la programmation Python") print(resultat) |
Sortie :
1 | J'apprends la programmation Python. |
La méthode remplace ici toute la séquence de caractères correspondant à l'expression le langage Python.
4. Remplacer un caractère dans une chaîne
La méthode replace() peut aussi être utilisée pour remplacer un seul caractère. Il suffit de fournir des chaînes contenant chacune un caractère.
Dans l'exemple suivant, toutes les lettres a sont remplacées par des étoiles.
1 2 3 | texte = "programmation" resultat = texte.replace("a", "*") print(resultat) |
Sortie :
1 | progr*mm*tion |
Chaque occurrence du caractère a a été remplacée par le caractère *.
Remplacer un séparateur
Le remplacement de caractères est particulièrement utile pour changer le séparateur utilisé dans une chaîne de données.
1 2 3 | date = "18/10/2026" nouvelle_date = date.replace("/", "-") print(nouvelle_date) |
Sortie :
1 | 18-10-2026 |
Les caractères / sont remplacés par des tirets, ce qui permet de modifier simplement la présentation de la date.
5. Remplacer toutes les occurrences d'une sous-chaîne
Lorsque le troisième paramètre est omis, replace() remplace par défaut toutes les occurrences de la sous-chaîne recherchée.
Dans l'exemple suivant, le mot chat apparaît trois fois. Toutes ses occurrences sont remplacées par chien.
1 2 3 | texte = "chat noir, chat blanc, chat gris" resultat = texte.replace("chat", "chien") print(resultat) |
Sortie :
1 | chien noir, chien blanc, chien gris |
Les trois occurrences de chat sont remplacées car aucune limite n'a été spécifiée.
Le texte de remplacement peut être plus court ou plus long que le texte recherché. Python construit automatiquement une nouvelle chaîne de la longueur nécessaire.
1 2 3 | texte = "HTML est utile. HTML est simple." resultat = texte.replace("HTML", "Python") print(resultat) |
Sortie :
1 | Python est utile. Python est simple. |
Le remplacement fonctionne même si Python contient davantage de caractères que HTML.
6. Limiter le nombre de remplacements
Le troisième argument facultatif de replace() permet de définir le nombre maximal d'occurrences à remplacer. Les remplacements sont effectués en partant de la gauche.
Dans l'exemple suivant, nous demandons à Python de remplacer uniquement la première occurrence de Python.
1 2 3 | texte = "Python Python Python" resultat = texte.replace("Python", "Java", 1) print(resultat) |
Sortie :
1 | Java Python Python |
Seule la première occurrence est remplacée puisque le troisième argument vaut 1.
Remplacer les deux premières occurrences
Pour remplacer les deux premières occurrences, il suffit de fournir la valeur 2 comme troisième argument.
1 2 3 | texte = "Python Python Python Python" resultat = texte.replace("Python", "Java", 2) print(resultat) |
Sortie :
1 | Java Java Python Python |
Les deux premières occurrences sont remplacées tandis que les suivantes restent inchangées.
7. Comprendre que replace() ne modifie pas la chaîne originale
Les chaînes de caractères Python sont immuables. Cela signifie qu'une chaîne existante ne peut pas être modifiée directement. La méthode replace() retourne donc une nouvelle chaîne.
Dans l'exemple suivant, nous affichons la chaîne originale après l'appel à replace() afin de vérifier qu'elle n'a pas été modifiée.
1 2 3 4 | texte = "Bonjour Python" resultat = texte.replace("Python", "Java") print("Chaîne originale :", texte) print("Nouvelle chaîne :", resultat) |
Sortie :
1 2 | Chaîne originale : Bonjour Python Nouvelle chaîne : Bonjour Java |
La variable texte contient toujours sa valeur originale. La chaîne modifiée est stockée dans la variable resultat.
Réaffecter le résultat à la même variable
Si l'on souhaite conserver uniquement la nouvelle version du texte, on peut réaffecter le résultat de replace() à la variable originale.
1 2 3 | texte = "Bonjour Python" texte = texte.replace("Python", "Java") print(texte) |
Sortie :
1 | Bonjour Java |
La variable texte référence désormais la nouvelle chaîne produite par replace().
8. Supprimer du texte avec replace()
La méthode replace() peut servir à supprimer une sous-chaîne. Pour cela, il suffit de la remplacer par une chaîne vide "".
Dans l'exemple suivant, nous supprimons le mot très de la phrase.
1 2 3 | texte = "Python est très facile." resultat = texte.replace("très ", "") print(resultat) |
Sortie :
1 | Python est facile. |
La chaîne "très ", espace compris, est remplacée par une chaîne vide. Elle disparaît donc du résultat.
Supprimer un caractère particulier
La même technique permet de supprimer tous les caractères indésirables d'un certain type. Dans cet exemple, nous supprimons les tirets d'un numéro.
1 2 3 | numero = "12-34-56-78" resultat = numero.replace("-", "") print(resultat) |
Sortie :
1 | 12345678 |
Toutes les occurrences du caractère - ont été remplacées par une chaîne vide.
9. Remplacer les espaces et les caractères spéciaux
La méthode replace() est fréquemment utilisée pour remplacer les espaces par un autre séparateur, notamment lorsqu'on prépare une chaîne destinée à être utilisée comme identifiant ou comme partie d'une URL.
Dans l'exemple suivant, chaque espace est remplacé par un tiret.
1 2 3 | titre = "Apprendre Python facilement" resultat = titre.replace(" ", "-") print(resultat) |
Sortie :
1 | Apprendre-Python-facilement |
Tous les espaces de la chaîne sont remplacés par des tirets.
Remplacer un retour à la ligne
Les caractères spéciaux tels que \n peuvent également être remplacés. Dans l'exemple suivant, les retours à la ligne sont transformés en espaces.
1 2 3 | texte = "Python\nJava\nC++" resultat = texte.replace("\n", " ") print(resultat) |
Sortie :
1 | Python Java C++ |
Les caractères de retour à la ligne \n ont été remplacés par des espaces.
10. Sensibilité à la casse de replace()
La méthode replace() est sensible à la casse. Les chaînes Python, python et PYTHON sont donc considérées comme différentes.
Dans l'exemple suivant, nous demandons uniquement le remplacement de la chaîne Python avec une majuscule initiale.
1 2 3 | texte = "Python python PYTHON Python" resultat = texte.replace("Python", "Java") print(resultat) |
Sortie :
1 | Java python PYTHON Java |
Seules les occurrences correspondant exactement à Python sont remplacées. Les variantes python et PYTHON restent inchangées.
Lorsque les différentes écritures sont connues à l'avance, plusieurs appels successifs à replace() peuvent être utilisés pour les remplacer.
1 2 3 4 5 | texte = "Python python PYTHON" resultat = texte.replace("Python", "Java") resultat = resultat.replace("python", "Java") resultat = resultat.replace("PYTHON", "Java") print(resultat) |
Sortie :
1 | Java Java Java |
Chaque variante est traitée séparément. Pour des remplacements plus complexes indépendants de la casse, le module re et les expressions régulières offrent des possibilités supplémentaires.
11. Effectuer plusieurs remplacements successifs
Il est possible d'enchaîner plusieurs appels à replace(). Chaque appel produit une nouvelle chaîne sur laquelle le remplacement suivant peut être effectué.
Dans l'exemple suivant, plusieurs langages sont remplacés successivement.
1 2 3 4 5 | texte = "Python Java PHP" resultat = texte.replace("Python", "C") resultat = resultat.replace("Java", "C++") resultat = resultat.replace("PHP", "JavaScript") print(resultat) |
Sortie :
1 | C C++ JavaScript |
Chaque instruction travaille sur le résultat produit par l'instruction précédente.
Enchaîner directement plusieurs replace()
Comme chaque appel à replace() retourne une chaîne, il est également possible d'enchaîner directement plusieurs méthodes sur la même expression.
1 2 3 | texte = "Python, Java, PHP" resultat = texte.replace("Python", "C").replace("Java", "C++").replace("PHP", "JavaScript") print(resultat) |
Sortie :
1 | C, C++, JavaScript |
Cette écriture est compacte et pratique lorsqu'un petit nombre de remplacements simples doit être effectué.
12. Exemples pratiques avec replace()
Nettoyer un numéro de téléphone
La méthode replace() peut servir à nettoyer des données saisies par un utilisateur. Dans l'exemple suivant, nous supprimons les espaces présents dans un numéro de téléphone.
1 2 3 | telephone = "06 12 34 56 78" telephone = telephone.replace(" ", "") print(telephone) |
Sortie :
1 | 0612345678 |
Chaque espace est remplacé par une chaîne vide, ce qui permet d'obtenir le numéro sans séparateurs.
Transformer un titre en chaîne avec des tirets
On peut combiner lower() et replace() pour convertir un titre simple en une chaîne en minuscules dont les mots sont séparés par des tirets.
1 2 3 | titre = "Cours Python Pour Débutants" resultat = titre.lower().replace(" ", "-") print(resultat) |
Sortie :
1 | cours-python-pour-débutants |
lower() transforme d'abord les lettres en minuscules, puis replace() remplace les espaces par des tirets.
Masquer une partie d'un texte
La méthode replace() peut également remplacer une information par une chaîne servant de masque lorsque la valeur exacte à masquer est connue.
1 2 3 | texte = "Mon code est ABC123." resultat = texte.replace("ABC123", "******") print(resultat) |
Sortie :
1 | Mon code est ******. |
La valeur recherchée est remplacée par des étoiles dans la nouvelle chaîne.
Modifier un séparateur dans des données
Lorsqu'une chaîne contient des données séparées par un caractère donné, replace() permet de remplacer rapidement ce séparateur par un autre.
1 2 3 | donnees = "Python;Java;C++;PHP" resultat = donnees.replace(";", ",") print(resultat) |
Sortie :
1 | Python,Java,C++,PHP |
Les points-virgules sont remplacés par des virgules sans modifier les autres caractères.
Remplacer une extension de fichier
Pour un nom de fichier simple dont on connaît précisément l'extension, replace() peut servir à remplacer cette extension. Dans l'exemple suivant, .txt est remplacé par .csv.
1 2 3 | fichier = "donnees.txt" nouveau_fichier = fichier.replace(".txt", ".csv") print(nouveau_fichier) |
Sortie :
1 | donnees.csv |
La chaîne .txt est remplacée par .csv. Pour des traitements généraux sur les chemins et les extensions de fichiers, des outils spécialisés comme pathlib sont toutefois plus adaptés.
13. À retenir !
- La méthode replace() permet de remplacer une sous-chaîne par une autre dans une chaîne de caractères.
- Sa syntaxe principale est chaine.replace(ancienne, nouvelle).
- Par défaut, replace() remplace toutes les occurrences trouvées.
- Le troisième argument de replace() permet de limiter le nombre de remplacements.
- La méthode peut remplacer un mot, une expression, un caractère ou une séquence de caractères.
- Pour supprimer du texte, il suffit de le remplacer par une chaîne vide "".
- replace() est sensible à la casse.
- Les chaînes Python étant immuables, replace() ne modifie pas directement la chaîne originale.
- La méthode retourne une nouvelle chaîne contenant les remplacements.
- Il est possible d'enchaîner plusieurs appels à replace() pour effectuer plusieurs transformations successives.
- replace() est particulièrement utile pour le nettoyage, la normalisation et la transformation simple de données textuelles.
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/



