Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quarantetrois moins quatre
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

saske
30-01-2022 13:57:51

update l'exemple 2 marche

saske
30-01-2022 13:55:24

re yoshi , vous utilisez quel IDE pour vos scripts? en essayant votre code pour recuperer le domain de l'email (l'exemple 1 et 2) j'obtient comme erreur

ValueError: too many values to unpack (expected 2)

par rapport à la ligne 2

saske
29-01-2022 15:23:27

Parfait ça résous mes principaux problèmes pour la suite merci yoshi !

yoshi
28-01-2022 21:14:03

Re,

J'ai testé ta proposition :

>>> a="jules_louis@truc-bidule.bip-machin.fr":
>>> a.split('@')[1].split('.')[0]
truc-bidule

Là, ça ne marche pas, même si c'est très intéressant : j'ai appris quelque chose.

Sinon, je modifie ma première proposition pour quelle s'adapte aux cas extrêmes.
   * Lire l'adresse à l'envers : donc le dernier point se trouve être le premier.
      Exemple :
      "brics@gmail.gouv.com"[::-1] donne rf.vuog.liamg@scirb     
   * Lire alors la position de ce point :
      "brics@gmail.gouv.com"[::-1].find(".") et j'ajoute 1
   *  Je soustrais la valeur calculée à la longueur de l'adresse pour avoir l2.
   * j'extrais le slice de l'adresse entre l1 et l2
     
Voilà :
Exemple1 :


>>> adresse ="brics@gmail.gouv.com"
>>> l1,l2=1+adresse.find("@"), 1+adresse.find("@"),len(adresse)-(1+adresse[::-1].find("."))
>>> print(adresse[l1:l2]
gmail.gouv

Exemple2 :

>>> adresse="jules_louis@truc-bidule.bip-machin.fr"
>>> l1,l2=1+adresse.find("@"),len(adresse)-(1+adresse[::-1].find("."))
>>> print(adresse[l1:l2])
truc-bidule.bip-machin

Un bémol : l'adresse bidon que j'utilise ici ne doit pas être "légale" : j'ai 2 points dans la partie qui suit le @...
Mais mes deux lignes (une de plus que toi) font le boulot quand même...

@+

saske
28-01-2022 20:03:40

Bonjour

a.split('@')[1].split('.')[0]

était la bonne formule (j'ai bricolé entre temps la fonction pour voir si j'y arrivais pas )

Appelons un chat un chat :  brics@gmail.gouv.com n'est pas un mail, mais une adresse mail...
 

c'est noté :)
merci pour la concatenation je pense avoir compris
par contre pour le mail justement , l'algo ne marchera pas par exemple si l'hébergeur du mail est ".fr"  par exemple , c'est pour ça que initialement j'avais pris le dernier point pour référence;

yoshi
28-01-2022 19:26:35

Bonjour,

'ai un mail brics@gmail.gouv.com , comment je pourrai extraire de ce mail que les charactères compris entre le @ et le dernier point?

Appelons un chat un chat :  brics@gmail.gouv.com n'est pas un mail, mais une adresse mail...
si tu veux pouvoir récupérer dans ton exemple : gmail.gouv

adresse="brics@gmail.gouv.com"
l1,l2=1+adresse.find("@"),len(adresse)-4
print(adresse[l1:l2]

Sortie :
gmail.gouv

Avec
adresse= "jules_louis@truc-bidule.bip-machin.org"
J'obtiens :
truc-bidule.bip-machin

As-tu testé ta proposition ?
Je pense que non.
En effet :

>>> a="saske@gmail.com"
>>> a.split('@')[1].split('.')[1]
'com'
 

Tu as un fichier .csv.
Il te faut l'ouvrir, puis le lire ligne par ligne : chaque ligne est une liste de string.

Mettons un fichier qui comprenne les colonnes :
Nom  Prénom  Adresse1  Adresse2 CP  Ville
Supposons que tu veuilles concaténer les colonnes 4 et 5 de la ligne L suivante. :
L=["LADOUMEGUE","JULES","LES POMMIERS","2 RUE DU CHAT QUI MIAULE", "30330","FELINVILLE"]

Concaténer est donc très simple :

L=L.append(L[4]+" "+L[5])

Et la ligne L devient :
['LADOUMEGUE', 'JULES', 'LES POMMIERS', '2 RUE DU CHAT QUI MIAULE', '30330', 'FELINVILLE', '30330 FELINVILLE']
(L'espace pour la lisibilité dans mon exemple)


Si tu veux un fichier possédant une colonne de plus pour chaque ligne, il te faut ouvrir le fichier d'origine en lecture et récrire ligne après ligne, chaque ligne modifiée (ou non) dans un nouveau fichier .csv.

Si tu veux d'autres infos, n'hésite pas.

@+

saske
28-01-2022 15:21:55

si j'avais juste comme mail a=saske@gmail.com , a.split('@')[1].split('.')[1] aurait  suffit

saske
28-01-2022 14:44:11

Bonjour ,
j'ai une petite question j'essaie d'automatiser un process mais j'ai des blocages par rapport à deux trucs
imaginons que j'ai un mail brics@gmail.gouv.com , comment je pourrai extraire de ce mail que les charactères compris entre le @ et le dernier point? je pense que c'est possible avec plusieurs boucles mais je pense aussi que en quelques ligne c'est faisable non?
et deuxième chose (pour ceux qui se connaissent en dataframe)  comment concatener deux valeurs de deux colones differentes dans une autre colonne , pas des valeurs numérique

Pied de page des forums