Split

bulle0789 Messages postés 1 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 13 février 2010 - 13 févr. 2010 à 13:27
werefrog Messages postés 3 Date d'inscription jeudi 31 décembre 2009 Statut Membre Dernière intervention 5 mars 2012 - 9 mars 2010 à 21:52
bonjour,

je débute en python, donc je n'ai pour l'instant encore que des bases.
Je sais que pour supprimer un signe de ponctuation d'un texte il faut text.split('.')
Mais voilà comment dois-je m'y prendre pour les enlever tous, car j'ai essayer :

text='Les representants de la C.G.T. de la S.N.C.F se sont presentes aupres de M. le ministre ; ce faisant ils n’ont pas ete entendu avant la fin de la reunion precedente.'

def coupe (text):



a=text.split('.')
a=text.split(';')
print (a)


et il resulte qu'il me separe mon texte en fonction des ";" et ne prend plus en compte le"."
Donc pourriez vous m'aider à obtenir un resultat qui prend en compte les 2 paramètre?
merci d'avance

3 réponses

lespinx Messages postés 106 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 23 novembre 2022 73
15 févr. 2010 à 12:46
Bonjour,

Petite erreur
a= text.split('.')
a=text.split(';')

Pour éliminer "." et ";" il aurait fallu faire
a=text.split('.')
b =a.split(';')

Mais ce n'est pas tout à fait aussi simple
Exemple de code:


text='Les representants de la C.G.T. de la S.N.C.F se sont presentes aupres de M. le ministre ; ce faisant ils n’ont pas ete entendu avant la fin de la reunion precedente.'

def coupe (text):
a=text.split('.')
#La methode SPLIT renvoie un resultat de type LIST
print "1 - a =",type(a)

#changement de type (transformation d'une liste en chaine de caractères)
a="".join(a)
print "2 - a =",type(a)

b=a.split(';')
b="".join(b)
print "3 - b =",type(b)
print b

coupe(text)
0
werefrog Messages postés 3 Date d'inscription jeudi 31 décembre 2009 Statut Membre Dernière intervention 5 mars 2012
9 mars 2010 à 21:48
Salut,

Je suis également débutant.

Personnellement, j'opte plutôt pour une transformation préalable du texte en remplaçant les caractères délimiteurs voulus par un délimiteur arbitraire (par exemple: '<TO_SPLIT>') pour finalement créer la liste.

texte = text='Les representants de la C.G.T. de la S.N.C.F se sont presentes aupres de M. le ministre ; ce faisant ils n&#8217;ont pas ete entendu avant la fin de la reunion precedente.'

def coupe(texte, delimiteurs='.;', marqueur='<TO_SPLIT>'):
    for delimiteur in delimiteurs:
        texte = texte.replace(delimiteur, marqueur)
    return texte.split(marqueur)

resultat = coupe(texte)
print(resultat)



Par contre, si le but est d'obtenir un texte sans les signes '.' et ';', le code suivant suffit :
texte = text='Les representants de la C.G.T. de la S.N.C.F se sont presentes aupres de M. le ministre ; ce faisant ils n&#8217;ont pas ete entendu avant la fin de la reunion precedente.'

def nettoyage(texte, delimiteurs='.;'):
    for delimiteur in delimiteurs:
        texte = texte.replace(delimiteur, '')
    return texte

resultat = nettoyage(texte)
print(resultat)
0
werefrog Messages postés 3 Date d'inscription jeudi 31 décembre 2009 Statut Membre Dernière intervention 5 mars 2012
9 mars 2010 à 21:52
Oops, désolé pour l'erreur dans la déclaration de texte. Ca marche quand même
0