IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

comptage d’occurrences dans un fichier


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Par défaut comptage d’occurrences dans un fichier
    bonsoir !
    je suis un super débutant en perl en fait j'ai un problème pour répondre a un exercice : j'ai un fichier qui contient des sequences :
    exemple :
    >seq1
    sqdfhjsqdhfkjsqd
    >seq2
    kswjdhvlskjvsdvsq
    >seq3
    ksndvk:jsn:kvssdfs
    ce que je cherche c'est le code pour compter le nombre de sequences mon idée est de compter combien j'ai de ">" exemple ici j'ai 3 donc le programme doit m'afficher : le nombre de sequences est 3
    jusqu'ici le code que j'ai pu établir me donne 1 car il compte que la premiere ligne du fichier pas plus...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    use strict;
    use warnings;
    open(FA, "sequences.txt") or die "fichier introuvable";
    my $nbr = <FA>;
    my @list = $nbr =~ />/g;
    my $count = scalar @list;
    print "Il y a $count  sequences dans la liste\n";
     
    close FASTA;
    <>
    Merci pour l'aide

  2. #2
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 457
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    use strict;
    use warnings;
    use utf8;
     
    my $fh;
    my $entree = 'sequences.txt';
    my $rech = '>seq';
     
    open ( $fh, '<:utf8', $entree )
       or die ( "Imposible d'ouvrir le fichier $entree $!" );
     
    my @lignes = <$fh>;
     
    my @seq =  grep { $_ =~ /$rech/ } @lignes;
     
    my $count = scalar(@seq);
     
    print "Il y a $count sequences '$rech' dans le fichier $entree\n";
     
    close $fh;

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    cette ligne de code:
    ne lit qu'une seule ligne de ton fichier.

    Il faut soit lire le fichier dans un tableau (une ligne par élément du tableau) comme l'a proposé dmganges, soit insérer la lecture des lignes du fichier dans une boucle while:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    my $count = 0;
    while (my $ligne = <FA>) {
        $count++ if $ligne =~ />seq/;
    }
    # ...

  4. #4
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Par défaut
    Merci pour vos réponses j ai trouvé la réponse de dmganges plutôt adquat avec mon projet par contre le second réponse me reste un peu absurde

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par akhsasi Voir le message
    par contre le second réponse me reste un peu absurde
    C'est pourtant une meilleure réponse si ton fichier en entrée est un tant soit peu volumineux (plus rapide, pas de consommation mémoire), c'est même la seule solution applicable si ton fichier est très volumineux.

    En outre, elle est plutôt plus simple.

  6. #6
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 987
    Par défaut
    Je crois qu'akhsasi a utilisé un mot pour un autre et qu'il veut dire qu'il ne comprend pas ta solution ou comment l'appliquer. Je ne crois pas qu'il pense que ton code est "absurde".

    Pour un fichier FASTA, j'aurais mis l'ancre de début de ligne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment supprimer des occurrences dans un fichier
    Par zeng49 dans le forum Général Python
    Réponses: 8
    Dernier message: 23/03/2013, 14h26
  2. méthode de comptage de lignes dans un fichier
    Par romses2 dans le forum Général Python
    Réponses: 9
    Dernier message: 09/08/2007, 19h57
  3. Comptage d'occurrences dans un tableau
    Par ulysse031 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/02/2007, 16h19
  4. occurrence d'un mot dans un fichier
    Par vallytiana dans le forum Langage
    Réponses: 10
    Dernier message: 18/01/2006, 18h10
  5. Comptage d'occurences dans un fichier
    Par bonjour69 dans le forum Réseau
    Réponses: 25
    Dernier message: 11/11/2005, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo