[Python] line.strip
#1

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
Répondre
#2

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
Répondre
#3

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

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
Répondre
#4

https://stackoverflow.com/questions/5092...e-notation

Code :
return line.split("\t")[0:3:2]
Répondre
#5

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
Répondre
#6

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

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
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)