OpenBSD pour tou(te?)s
[Python] line.strip - Version imprimable

+- OpenBSD pour tou(te?)s (https://forum.openbsd.fr.eu.org)
+-- Forum : Questions (https://forum.openbsd.fr.eu.org/forumdisplay.php?fid=36)
+--- Forum : Programmation (https://forum.openbsd.fr.eu.org/forumdisplay.php?fid=46)
+--- Sujet : [Python] line.strip (/showthread.php?tid=2345)



[Python] line.strip - PengouinBSD - 01-06-2019

Bonjour,

À une ligne donnée :

Code :
81.22.45.0    81.22.45.255    24    6172    SELECTEL,    RU    abuse@selectel.ru

Ce ne sont pas des espaces mais des tabulations.

En python, si je veux récupérer la première colonne, il me suffit d'écrire :

Code :
return line.split("\t")[0]

Maintenant, admettons que je veuille récupérer la première et la troisième ; est-ce qu'il y a une manière "plus élégante" que :

Code :
return line.split("\t")[0] + '/' + line.split("\t")[2]

Une idée ?!


RE: [Python] line.strip - solene - 01-06-2019

Code :
tableau = line.split("\t")
return tableau[0] + "/" + tableau[2]

ça t'évite de faire 2 fois la commande split, sinon tu retournes la variable tableau et tu prends les éléments que tu as besoin dedans dans les fonctions qui l'utilisent.

en awk ce serait simplement awk -F '\t' '{ print $1"/"$3 }' Tongue


RE: [Python] line.strip - PengouinBSD - 01-06-2019

bien vu pour le tableau.

Et, oui, avec awk, cela aurait été plus simple... mais généralement python se tire mieux du traitement de fichier que le shell ! Big Grin


RE: [Python] line.strip - prx - 01-06-2019

https://stackoverflow.com/questions/509211/understanding-slice-notation

Code :
return line.split("\t")[0:3:2]



RE: [Python] line.strip - PengouinBSD - 01-06-2019

Intéressant mais le résultat n'est pas le bon ; enfin pas exactement.
ça génère une liste... donc, je suis obligé de la changer en string, telle que :

Code :
return "/".join(line.split("\t")[0:3:2])

Maintenant, il faudrait voir si c'est plus rapide, et plus élégant :p


RE: [Python] line.strip - prx - 01-06-2019

T'as demandé juste de récupérer le premier et 3e champs, pas que ça soit un string ;P


RE: [Python] line.strip - PengouinBSD - 01-06-2019

Pourtant l'exemple est clair, me semble-t-il ?! :p