Bonjour,
J'ai besoin de lister un repertoire pour récupérer les fichiers en csv, afin de connaitre le nombre de fichier lister.
Comment faire ?
Merci








Bonjour,
J'ai besoin de lister un repertoire pour récupérer les fichiers en csv, afin de connaitre le nombre de fichier lister.
Comment faire ?
Merci
Sous Unix/Linux?
En utilisant les services fournis par l'OS
(Doit aussi avoir son équivalent windowsien à base de dir)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 my $repertoire = "/home/je/suis/ton/pere"; my @ls = `ls $repertoire`; print @ls;
Sinon, pour s'affranchir de l'OS c'est un peu plus complexe, mais plus portable :
http://perl.developpez.com/faq/perl/?page=section1








je suis sous windows !!
merci, mais ton résultat ne me donne pas le nombre de fichier, simplement le nom des fichiers dans un tableau.
Mais ça reste Unixien
Code : Sélectionner tout - Visualiser dans une fenêtre à part ls | wc -l
Une des solutions les plus simples est d'utiliser la fonction glob (perldoc -f glob).
L'autre solution alternative, c'est de parcourir le répertoire avec les fonctions opendir et readdir (perldoc -f opendir).
Exemple avec glob :
Code : Sélectionner tout - Visualiser dans une fenêtre à part my @csv_files = glob("*.csv");
Pour avoir le nombre d'éléments du tableau, il suffit d'utiliser ce tableau dans un contexte scalaire. Plusieurs solutions :
On peut aussi récupérer directement le nombre d'élément avec le pseudo opérateur goatse =()= :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 my $nb_csv = @csv_files; $nb_csv = scalar(@csv_files);
Code : Sélectionner tout - Visualiser dans une fenêtre à part my $nb_csv = () = glob("*.csv");
La solution avec opendir et readdir, présentée ici comme un uniligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2$ perl -e 'opendir DIR, "/usr/bin"; @d = readdir DIR; print scalar @d, "\n";' 527
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
Partager