2022-11-09 00:33 Temps de lecture : 7 min

Comment supprimer le dernier caractère d'une chaîne Python ?

Comment éliminer le dernier caractère d'une chaîne en Python : Plusieurs méthodes

Explorons ensemble diverses approches pour retirer le dernier caractère d'une chaîne de caractères en Python.

Le Découpage (Slicing)

Python offre une flexibilité remarquable avec le découpage, permettant d'utiliser des index positifs et négatifs. Les index négatifs démarrent à -1 pour le dernier élément et progressent jusqu'à -(longueur de l'itérable). Cette fonctionnalité s'avère très pratique pour manipuler les éléments à partir de la fin d'une séquence.

  • L'index -1 désigne le dernier élément.
  • L'index -2 pointe vers l'avant-dernier élément.
  • Et ainsi de suite, jusqu'au premier élément.

Illustrons cela avec un exemple concret :

nom = "toptips.fr"
print(nom[-1])
print(nom[-len(nom)])

Ce code affichera le dernier et le premier caractère de la chaîne, grâce à l'indexation négative.

Alors, comment utiliser le découpage pour supprimer le dernier caractère ? C'est simple comme bonjour. Nous savons comment extraire une partie de la chaîne. Appliquons cela avec un index négatif pour ôter le dernier caractère.

  • Il suffit de découper la chaîne du début jusqu'à l'élément juste avant la fin.
nom_erroné = "GeekflareE"
nom = nom_erroné[:-1]
print(nom)

La deuxième ligne de ce code est la clé de l'opération. Elle extrait la sous-chaîne en partant du début jusqu'à l'avant-dernier caractère, car le découpage exclut l'élément correspondant au deuxième index.

En exécutant ce code, vous obtiendrez "Geekflare" comme résultat.

La méthode rstrip()

La méthode rstrip est spécialement conçue pour supprimer les caractères situés à l'extrémité droite d'une chaîne. Nous pouvons donc l'employer pour effacer le dernier élément. Une seule ligne de code suffit.

  • Il suffit de passer le dernier caractère à la méthode rstrip(), et elle renverra une nouvelle chaîne sans ce dernier élément.

Voici un exemple :

nom_erroné = "GeekflareE"
nom = nom_erroné.rstrip(nom_erroné[-1])
print(nom)

Ici, nous passons le dernier caractère de la chaîne à rstrip(), qui le supprime et retourne une copie de la chaîne sans ce caractère.

Le résultat affiché dans la console sera "Geekflare".

Exemple Pratique : Supprimer le Dernier Mot d'un Fichier

Mettons en pratique ce que nous venons de voir dans un cas concret.

Imaginons que nous ayons un fichier contenant plusieurs lignes de texte, et notre objectif est de supprimer le dernier mot de chaque ligne.

Suivons les étapes suivantes :

  • Créez un fichier nommé random_text.txt et insérez-y quelques lignes de texte.
  • Initialisez une variable données avec une chaîne vide.
  • Ouvrez le fichier en mode lecture et écriture en utilisant la structure with open().
  • Lisez le contenu du fichier avec la méthode readlines().
  • Parcourez chaque ligne du contenu :
    • Divisez la ligne en mots en utilisant split().
    • Supprimez le dernier mot en utilisant l'une des méthodes expliquées précédemment.
    • Reconstituez la chaîne à partir des mots restants.
    • Ajoutez cette nouvelle ligne à la variable données.
  • Effacez les données existantes du fichier avec seek(0) et truncate().
  • Écrivez les nouvelles données dans le fichier en utilisant la méthode write().

Voici les données contenues dans notre fichier :

Ceci est une ligne exemple pour le test. DernierMot.
Ceci est une ligne exemple pour le test. Super.
Ceci est une ligne exemple pour le test. MotAuHasard.
Ceci est une ligne exemple pour le test. Supprimer.
Ceci est une ligne exemple pour le test. Retirer.

Et voici le code correspondant :

données_mises_a_jour = ""

# ouverture du fichier
with open('random_text.txt', 'r+') as fichier:
    # lecture du contenu
    contenu_fichier = fichier.readlines()

    # parcours du contenu
    for ligne in contenu_fichier:

        # suppression du dernier mot
        ligne_mise_a_jour = " ".join(ligne.split(' ')[:-1])

        # ajout des données à la variable
        données_mises_a_jour += f'{ligne_mise_a_jour}\n'

    # suppression des anciennes données
    fichier.seek(0)
    fichier.truncate()

    # écriture des nouvelles données
    fichier.write(données_mises_a_jour)

En exécutant ce script avec le fichier fourni, le fichier contiendra désormais ces données modifiées :

Ceci est une ligne exemple pour le test.
Ceci est une ligne exemple pour le test.
Ceci est une ligne exemple pour le test.
Ceci est une ligne exemple pour le test.
Ceci est une ligne exemple pour le test.

Nous espérons que ce tutoriel vous a plu.

Bon codage ! 🙂

N'hésitez pas à consulter d'autres informations sur les opérations de sous-chaîne en Python.

Cet article vous a intéressé ? N'hésitez pas à le partager avec votre réseau !

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.