Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 28-01-2022 14:44:11
- saske
- Invité
python fichier csv
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
#2 28-01-2022 15:21:55
- saske
- Invité
Re : python fichier csv
si j'avais juste comme mail a=saske@gmail.com , a.split('@')[1].split('.')[1] aurait suffit
#3 28-01-2022 19:26:35
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : python fichier csv
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.
@+
Hors ligne
#4 28-01-2022 20:03:40
- saske
- Invité
Re : python fichier csv
Bonjour
était la bonne formule (j'ai bricolé entre temps la fonction pour voir si j'y arrivais pas )
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;
#5 28-01-2022 21:14:03
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : python fichier csv
Re,
J'ai testé ta proposition :
>>> 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 :
>>> 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...
@+
Hors ligne
#6 29-01-2022 15:23:27
- saske
- Invité
Re : python fichier csv
Parfait ça résous mes principaux problèmes pour la suite merci yoshi !
#7 30-01-2022 13:55:24
- saske
- Invité
Re : python fichier csv
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
par rapport à la ligne 2
#8 30-01-2022 13:57:51
- saske
- Invité
Re : python fichier csv
update l'exemple 2 marche
Pages : 1







