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 :

Suppression saut de ligne


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut Suppression saut de ligne
    Bonjour,

    j'ai un fichier texte qui contient les 2 lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    *jkjkgjkg : * A - KJH - KLH - KHD
    - UF - LGHD
    J'ai fait le code suivant pour obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *jkjkgjkg : * A - KJH - KLH - KHD- UF - LGHD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import re
     
    f = open('Texte.txt', 'r',encoding="utf-8-sig")
    contenu=""
    for line in f:
     
        lineM = line
        myResearch = re.search("^\*", lineM)
        #print(myResearch)
        if myResearch==None :
     
            pass
        else :
            lineM2 = lineM.replace("\n", " ")
            contenu = contenu + lineM2
     
    print(contenu)
     
    f.close()
    mais à la place j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *jkjkgjkg : * A - KJH - KLH - KHD

    Pourriez-vous me dire ce qui va pas svp?
    Merci beaucoup.

  2. #2
    Expert confirmé

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

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

    Tu te compliques la vie là.
    Aucun besoin de regex ici, tu peux directement faire line.strip() sans t'occuper s'il y a bien un retour ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> l = "abcd\n"
    >>> ll = l.strip()
    >>> ll
    'abcd'
    Note que tu n'as pas d'espace entre KHD et le tiret qui suit ...

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    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 738
    Par défaut
    Salut,

    Citation Envoyé par Arsene12 Voir le message
    Pourriez-vous me dire ce qui va pas svp?
    La deuxième ligne ne commençant pas par '*', çà ne passe pas par le "else"... et on ne voit pas l'intérêt qu'il y a à tester le début de ligne par rapport à supprimer les fin de lignes qui pourrait se faire via:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contenu= ''.join(open('Texte.txt', 'r',encoding="utf-8-sig").read().splitlines())
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    La deuxième ligne ne commençant pas par '*', çà ne passe pas par le "else".
    - W
    Merci beaucoup, je venais juste de me rendre compte de cette erreur tout bête. J'ai corrigé en me servant de .strip() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import re
     
    f = open('Texte.txt', 'r',encoding="utf-8-sig")
    contenu=""
    maLigne = 0
    for line in f:
     
        lineM = line
        myResearch = re.search("^\*", lineM)
        if myResearch==None and maLigne == 0 :
            pass
        elif myResearch==None and maLigne == 1 :
            contenu = contenu + " " +lineM.strip()
            maLigne = 0
            pass
        else :
            contenu = lineM.strip()
            maLigne = 1
     
    print(contenu)
     
    f.close()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression saut de ligne report 11gR2
    Par toitoine01 dans le forum Reports
    Réponses: 0
    Dernier message: 04/10/2013, 19h01
  2. Réponses: 3
    Dernier message: 06/10/2010, 14h40
  3. suppression sauts de ligne ?
    Par delavega dans le forum Flash
    Réponses: 7
    Dernier message: 03/11/2006, 08h35
  4. suppression des sauts de ligne
    Par mrtatou dans le forum C
    Réponses: 1
    Dernier message: 30/01/2006, 17h11
  5. [DOM] Problème de suppression sauts de lignes après modification XML
    Par chabada dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 15/06/2005, 13h46

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