IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

[Résolu] Supprimer des '\n' d'un string


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut [Résolu] Supprimer des '\n' d'un string
    Bonjour, je suis novice sur Python;
    élève en terminale option ISN, j'ai comme projet de faire un "dictionnaire français-anglais".
    J'en arrive a ce problème, j'ai un string traité plusieurs fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a=a.replace("[", "")
    a=a.replace("]", "")
    a=a.replace("'", "")
    a=a.replace(" <-> ", " ")
    a=a.replace(",", "")
    a=a.replace('\n', '')
    Cependant le dernier .replace() ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stylo pen\n maison home\n dessin draw
    J'ai trouvé de nombreuses solutions sur Internet, mais rien de fonctionne.

    Que me conseillez-vous de faire? Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le plus souvent, '\n' est le caractère de fin de ligne, et Python interprète l'antislash pour faire cette conversion. Mais ce n'est pas le cas ici: '\n' sont 2 caractères: il faut donc mettre un r devant (=> r'\n') pour empêcher Python d'interpréter le '\'.

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Salut,

    Fais un print(a) avant le dernier replace() pour voir ce qu'il en est de ta string après toutes ces opérations.

    Il n'y a pas de raison pour que cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> s = "stylo pen\n maison home\n dessin draw"
    >>> s.replace('\n', '')
    'stylo pen maison home dessin draw'

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    Avant tout, merci pour vos réponses.
    '\n' sont 2 caractères: il faut donc mettre un r devant (=> r'\n') pour empêcher Python d'interpréter le '\'.
    Cela a fonctionné du premier coup, je te remercie!!

    Il n'y a pas de raison pour que cela ne fonctionne pas.
    Je le sais bien, je n'ai pas compris non plus! Quoi qu'il en soit, regarde ce que j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> stylo pen\n maison home\n dessin draw
    stylo pen\n maison home\n dessin draw
    >>>
    Mon problème est résolu, merci à vous!

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Par défaut
    Bonjour,

    Il y a une fonction toute faite pour ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string = 'machaine de caractere\n'
    string = string.strip()

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 6
    Par défaut
    Oui je l'avais vue mais ca marche pas chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> a="a\nb\nc"
    >>> a=a.strip()
    >>> a
    'a\nb\nc'

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 688
    Par défaut
    Par défaut, .strip supprimera les "blancs" en début et fin de chaîne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> s = "\na\nb\nc\n"
    >>> s.strip('\n')
    'a\nb\nc'
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    strip() ne marche pas ici parce que, comme je l'ai dit au début, le problème n'est pas de supprimer la fin de ligne mais les 2 caractères imprimables '\' suivi de 'n'.

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 688
    Par défaut
    Salut,
    Avec le littéral
    Les '\n' ne comptent que pour 1 caractères.
    Pour que les "\" soient dans la chaîne, il faudrait les doubler ("\\n") ou le préfixer par "r"
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    En fait a.replace('\n', '') donne bien le résultat escompté, le problème venait manifestement de son utilisation.

    Citation Envoyé par TheSunser Voir le message
    Je le sais bien, je n'ai pas compris non plus! Quoi qu'il en soit, regarde ce que j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> stylo pen\n maison home\n dessin draw
    stylo pen\n maison home\n dessin draw
    >>>
    La première ligne laisse à penser qu'il s'agit de l'interpréteur interactif, il aurait donc dut s'en suivre une erreur et la deuxième ligne ne comporte pas de guillemets... Il aurait fallut voir le vrai code pour comprendre.

  11. #11
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 688
    Par défaut
    Déjà qu'il n'est pas toujours facile de comprendre les questions s'il faut, en plus, interpréter ce qui est dans entre les balises CODE...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Supprimer des Nombre d'un string ?
    Par icekev dans le forum VB.NET
    Réponses: 14
    Dernier message: 24/08/2010, 20h20
  2. Réponses: 2
    Dernier message: 26/06/2007, 16h04
  3. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 16h41
  4. Réponses: 14
    Dernier message: 15/01/2004, 01h15
  5. Réponses: 2
    Dernier message: 12/01/2004, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo