Messages : 4 382
Sujets : 880
Inscription : Dec 2016
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 ?!
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 802
Sujets : 20
Inscription : Jan 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 }'
(Modification du message : 01-06-2019, 12:41:30 par
solene.)
Messages : 4 382
Sujets : 880
Inscription : Dec 2016
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 !
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 1 862
Sujets : 90
Inscription : Oct 2017
Messages : 4 382
Sujets : 880
Inscription : Dec 2016
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
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733
Messages : 1 862
Sujets : 90
Inscription : Oct 2017
T'as demandé juste de récupérer le premier et 3e champs, pas que ça soit un string ;P
Messages : 4 382
Sujets : 880
Inscription : Dec 2016
Pourtant l'exemple est clair, me semble-t-il ?! :p
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733