Cursus
Le rognage de texte est une tâche fondamentale lors du traitement de données textuelles en Python, en particulier lors des phases de nettoyage et de préparation des données dans les projets de science des données. Le rognage permet de supprimer les caractères indésirables, tels que les espaces, au début et à la fin des chaînes, rendant ainsi vos données plus cohérentes et prêtes à être analysées.
Dans ce tutoriel, je vais vous présenter les trois principales méthodes permettant de tronquer des chaînes en Python : .strip()
, .lstrip()
et .rstrip()
. Je vais également vous présenter des cas d'utilisation spécifiques afin de démontrer leur polyvalence et leur utilité dans des scénarios concrets.
3 méthodes pour tronquer une chaîne en Python
Python fournit des méthodes intégrées pour tronquer les chaînes, ce qui facilite le nettoyage et le prétraitement des données textuelles. Ces méthodes comprennent notamment
.strip()
: Supprime les caractères de début et de fin (espaces par défaut)..lstrip()
: Supprime les caractères de début (espaces par défaut) à partir de la gauche de la chaîne..rstrip()
: Supprime les caractères de fin (espaces par défaut) à partir de la fin de la chaîne.
La maîtrise de ces méthodes permet une manipulation et une préparation efficaces des textes, ce qui est essentiel pour toute tâche de science des données impliquant des données textuelles.
1. Supprimer les espaces blancs au début et à la fin des chaînes de caractères en Python à l'aide de .strip()
La méthode .strip()
est conçue pour supprimer les caractères de début et de fin d'une chaîne. Il est le plus souvent utilisé pour supprimer les espaces blancs. Voici un exemple ci-dessous, lorsqu'il est utilisé sur la chaîne " I love learning Python! ".
text = " I love learning Python! "
trimmed_text = text.strip()
print(trimmed_text) # Output: "I love learning Python!"
Cette méthode est particulièrement utile pour normaliser des chaînes qui peuvent comporter des espaces blancs variables en début et en fin.
2. Supprimer les espaces blancs en début de chaîne dans Python à l'aide de .lstrip()
La méthode .lstrip()
cible la partie gauche d'une chaîne et supprime les caractères en tête. Par défaut, il supprime les espaces blancs, mais il est possible de le configurer pour supprimer des caractères spécifiques. Voici la méthode .lstrip() appliquée à la même chaîne " I love learning Python! "
de l'exemple précédent :
text = " I love learning Python! "
left_trimmed_text = text.lstrip()
print(left_trimmed_text) # Output: "I love learning Python! "
.lstrip()
est utile lorsque vous devez nettoyer des chaînes qui commencent par des espaces ou des caractères indésirables, comme dans les listes de noms ou les données catégorielles.
3. Supprimer les espaces blancs à la fin des chaînes de caractères en Python à l'aide de .rstrip()
La méthode .rstrip()
complète la méthode .lstrip()
en supprimant les caractères à la fin d'une chaîne. Il offre la même flexibilité pour spécifier les caractères à supprimer. Voici comment cela s'applique à l'exemple ci-dessus :
text = " I love learning Python! "
right_trimmed_text = text.rstrip()
print(right_trimmed_text) # Output: " I love learning Python!"
Utilisez la fonction .rstrip()
lorsque vous traitez des chaînes contenant des caractères indésirables ou des espaces à la fin, tels que des signes de ponctuation ou des annotations.
Supprimer des caractères spécifiques d'une chaîne en Python
Les méthodes de trimming de chaînes de Python vous permettent de spécifier les caractères à supprimer au début et à la fin des chaînes. Cette fonctionnalité ajoute une couche de flexibilité aux méthodes .strip()
, .lstrip()
et .rstrip()
, permettant des opérations de nettoyage de chaînes plus ciblées.
Cependant, comme nous le verrons dans nos exemples, il est important de reconnaître les limites inhérentes à ces méthodes : elles ne permettent pas de supprimer des caractères au milieu des chaînes ni de gérer des suppressions plus complexes basées sur des modèles. Pour des besoins aussi avancés, les expressions régulières (regex) offrent une solution plus robuste.
Supprimer des caractères spécifiques d'une chaîne en Python à l'aide de .strip()
Commençons par la méthode d'.strip()
. La méthode .strip() peut être personnalisée pour supprimer non seulement les espaces, mais également des caractères spécifiques aux deux extrémités d'une chaîne. Voici un exemple :
text = "!!!I love learning Python!!!"
specific_char_trimmed = text.strip('!')
print(specific_char_trimmed) # Output: "I love learning Python"
Maintenant, imaginons que notre chaîne soit en réalité "xxxyyy I love learning Python xxxyyy"
. Étant donné que ”xxx”
et ”yyy”
se trouvent à la fois au début et à la fin de la chaîne, il est possible de les supprimer tous les deux en spécifiant le caractère xy
comme caractère à supprimer. Le voici en action !
text = "xxxyyy I love learning Python xxxyyy"
specific_chars_trimmed = text.strip('xy')
print(specific_chars_trimmed) # Output: " I love learning Python "
Comme mentionné précédemment, il est essentiel de comprendre que .strip()
ne peut pas supprimer des caractères au milieu de la chaîne. Par exemple, si le texte que nous supprimons est "!!!I love learning!!! Python!!!"
, le résultat de l'opération ci-dessus serait ”I love learning!!! Python”
. Pour des opérations de suppression plus complexes, il est préférable de se reporter aux expressions régulières plutôt qu'aux méthodes de suppression décrites dans ce tutoriel.
Supprimer des caractères spécifiques d'une chaîne en Python à l'aide de .lstrip()
et .rstrip()
Il en va de même pour les méthodes .lstrip()
et .rstrip()
. Vous trouverez ci-dessous des exemples de suppression de caractères spécifiques en début et en fin de ligne dans les fichiers .lstrip()
et .rstrip()
, respectivement :
text = "!!!I love learning Python!!!"
left_char_trimmed = text.lstrip('!')
print(left_char_trimmed) # Output: "I love learning Python!!!"
right_char_trimmed = text.rstrip('!')
print(right_char_trimmed) # Output: "!!!I love learning Python"
De plus, la même technique permettant de supprimer plusieurs caractères peut être appliquée à l'.lstrip()
, et .rstrip()
text = "xxxyyy I love learning Python xxxyyy"
left_chars_trimmed = text.lstrip('xy')
print(left_chars_trimmed) # Output: " I love learning Python xxxyyy"
right_chars_trimmed = text.rstrip('xy')
print(right_chars_trimmed) # Output: "xxxyyy I love learning Python"
Nouvelles méthodes de tronquage de chaînes dans Python 3.9
Python 3.9 a introduit les fonctions str.removeprefix()
et str.removesuffix()
, qui suppriment explicitement les préfixes ou suffixes connus.
Supprimer un préfixe à l'aide de removeprefix()
text = "Python_is_fun"
trimmed_text = text.removeprefix("Python_")
print(trimmed_text) # Output: "is_fun"
Supprimer un suffixe à l'aide de removesuffix()
text = "data_cleaning.csv"
trimmed_text = text.removesuffix(".csv")
print(trimmed_text) # Output: "data_cleaning"
Considérations relatives aux performances pour le raccourcissement des chaînes
Lorsque vous travaillez avec de grands ensembles de données, il est important de tronquer efficacement les chaînes de caractères. Les fonctions .strip()
, .lstrip()
et .rstrip()
fonctionnent avec une complexité temporelle O(n). Cependant, pour les ensembles de données volumineux, l'utilisation d'opérations vectorisées dans Pandas peut s'avérer plus efficace :
import pandas as pd
df = pd.DataFrame({"text": [" Data Science ", " Machine Learning "]})
df["cleaned_text"] = df["text"].str.strip()
print(df)
Conclusion
Il est essentiel de comprendre le rognage et la manipulation des chaînes de caractères pour programmer efficacement en Python. Si les méthodes .strip()
, .lstrip()
et .rstrip()
répondent aux besoins de base, il peut être nécessaire de se plonger dans les expressions régulières pour traiter des scénarios plus complexes. Pour approfondir vos connaissances, nous vous invitons à consulter notre tutoriel sur les expressions régulières ou, mieux encore, à vous lancer dans le cursus Traitement du langage naturel en Python de DataCamp.
Apprenez Python à partir de zéro

Adel est un éducateur, conférencier et évangéliste en science des données à DataCamp où il a publié plusieurs cours et formations en direct sur l'analyse des données, l'apprentissage automatique et l'ingénierie des données. Il est passionné par la diffusion des compétences en matière de données dans les organisations et par l'intersection de la technologie et de la société. Il est titulaire d'une maîtrise en science des données et en analyse commerciale. Pendant son temps libre, vous pouvez le trouver en train de traîner avec son chat Louis.
Foire aux questions
Puis-je utiliser .strip(), .lstrip() ou .rstrip() pour supprimer les caractères numériques d'une chaîne ?
Oui, vous pouvez spécifier des caractères numériques comme cible à supprimer. Par exemple :
text = "12345Python12345"
trimmed_text = text.strip('12345')
print(trimmed_text) # Output: "Python"
Comment les fonctions .strip(), .lstrip() et .rstrip() gèrent-elles les chaînes contenant des caractères d'espacement mixtes tels que des tabulations ou des sauts de ligne ?
Par défaut, ces méthodes suppriment tous les types d'espaces, y compris les espaces, les tabulations (\t) et les sauts de ligne (\n). Par exemple :
text = "\t\n Python Programming \n\t"
trimmed_text = text.strip()
print(trimmed_text) # Output: "Python Programming"
Que se passe-t-il si j'appelle .strip(), .lstrip() ou .rstrip() sur une chaîne vide ?
Si vous appelez ces méthodes sur une chaîne vide, elles renvoient une chaîne vide sans erreur. Par exemple :
text = ""
trimmed_text = text.strip()
print(trimmed_text) # Output: ""