Bonjour,
C'est ma première tentative d'utiliser Python à la place du shell (awk).
J'ai un fichier de plusieurs milliers de lignes, organisé en six champs, tous numériques ($1 => $6) séparés par une tabulation (\t). La première ligne peut comporter les noms des champs si ça aide.
j'aimerais faire ce qui suit...
- parcourir le fichier ligne par ligne (readline) et récupérer le contenu de la ligne qui vient d'être lue dans une structure adéquate, car il faut travailler sur les champs, indépendamment les uns des autres. Je ne sais pas quoi choisir d'ailleurs...
- lecture ligne 1: stocker le contenu des champs ($1) ($4) et($6) dans trois variables (entity, sigma1, sigma2) et initialiser un compteur (cpt=1)
- tant que $1 (entity) ne change pas, lire la ligne suivante, incrémenter le compteur (cpt = cpt + 1) et ajouter $4 à sigma1 et $6 à sigma2
... ainsi de suite, tant que $1 (entity) n'a pas changé.
Dès que $1 a changé,
1- on interrompt le traitement;
2- on fait la division (sigma1/cpt) et (sigma2/cpt) et on recopie $1, $2, $3, $5 plus les deux valeurs qui viennent d'être calculées (sigma1 et sigma2) dans un fichier résultat...
3- on réinitialise cpt, sigma1 et sigma2 et on reprend le traitement, jusqu'à la fin du fichier...
Ma question: est-ce que c'est faisable facilement avec Python? En utilisant quelles structures de données (liste? tableau? tuple? dictionnaire? namedtuple?)
Comme c'est ma première incursion réelle dans le monde de Python, évidemment je ne sais pas comment m'y prendre...
Merci à celles/ceux qui ont davantage d'expérience et ont envie de la partager...
Henri
Partager