1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| my @files_array = grep { /\.txt$/i } lister_fichiers('P:/Theorie/Cathy/Myco_pyro/septembre_2011/sequences');
my $out_rep = 'P:/Theorie/Cathy/Myco_pyro/septembre_2011/graphiques_predits/';
my $fichier_rapport = $out_rep.'rapport.txt';
open my $out_rapport, '>', $fichier_rapport or die "Impossible d'écrire dans le fichier $fichier_rapport\n";
# 59 A1 TTCTACTTTTGGCCTGCT no orga TTCTACTTTT GGCCTGGCCC TT Failed (quality window: 20 )
my $TAB = qq{\t};
my $DOUBLETAB = $TAB . $TAB;
my $TRIPLETAB = $TAB . $TAB . $TAB;
print {$out_rapport} $DOUBLETAB . 'Jazz' . $TRIPLETAB . 'Pyroseq' . "$TAB\n";
print {$out_rapport} 'Rep' . $TAB . 'Well' . $TAB . 'Seq' . $TAB . 'Orga_Ref' . $TAB . 'Orga' . $TAB . 'Seq' . $TAB . 'Orga' . $TAB . 'Num' . $TAB . 'Compare' . $TAB . 'valid' . "\n";
close $out_rapport;
#======================================================
# Nombre d'arguments : 1 ou 2
# Argument(s) : un répertoire et valeur 0 ou 1
# Retourne : Tableau de fichier (@fichiers)
#======================================================
sub lister_fichiers {
my ( $repertoire, $recursivite ) = @_;
require File::Spec;
# Recherche dans les sous répertoire ou non
if ( ( not defined $recursivite ) || ( $recursivite != 1 ) ) { $recursivite = 0; }
# Verification répertoire
if ( not defined $repertoire ) { die "Aucun repertoire de specifie\n"; }
# Ouverture d'un répertoire
opendir my $fh_rep, $repertoire or die "impossible d'ouvrir le répertoire $repertoire\n";
# Liste fichiers et répertoire sauf (. et ..)
my @fic_rep = grep { !/^\.\.?$/ } readdir $fh_rep;
# Fermeture du répertoire
closedir $fh_rep or die "Impossible de fermer le répertoire $repertoire\n";
# On récupère tous les fichiers
my @fichiers;
foreach my $nom (@fic_rep) {
my $notre_ficrephier = File::Spec->catdir( $repertoire, $nom );
if ( -f $notre_ficrephier ) {
push( @fichiers, $notre_ficrephier );
}
elsif ( -d $notre_ficrephier and $recursivite == 1 ) {
push( @fichiers, lister_fichiers($notre_ficrephier, $recursivite) ); # recursivité
}
}
return @fichiers;
} |
Partager