Comment analyser des fichiers texte avec Perl

L'analyse de fichiers texte est l'une des raisons pour lesquelles Perl est un excellent outil d'exploration de données et de script.

Comme vous le verrez ci-dessous, Perl peut être utilisé pour reformater un groupe de texte. Si vous regardez le premier morceau de texte puis la dernière partie en bas de la page, vous pouvez voir que le code au milieu transforme le premier ensemble en deuxième.

Comment analyser des fichiers texte

Par exemple, construisons un petit programme qui ouvre un fichier de données séparé par des tabulations et analyse les colonnes en quelque chose que nous pouvons utiliser.

Dites, par exemple, que votre patron vous remet un fichier avec une liste de noms, de courriels et de numéros de téléphone, et veut que vous lisiez le fichier et fassiez quelque chose avec les informations, comme le mettre dans une base de données ou simplement l'imprimer dans un rapport bien formaté.

Les colonnes du fichier sont séparées par le caractère TAB et ressembleraient à ceci:

 Larry [email protected] 111-1111

 Curly [email protected] 222-2222

 Moe [email protected] 333-3333 

Voici la liste complète avec laquelle nous travaillerons:

 #! / usr / bin / perl

 

 open (FICHIER, 'data.txt');

 tandis que () 

 chomp;

 ($ name, $ email, $ phone) = split ("\ t");

 imprimer "Nom: $ nom \ n";

 imprimer "Email: $ email \ n";

 imprimer "Téléphone: $ téléphone \ n";

 print "--------- \ n";

 

 Fermer le fichier);

 sortie;


Remarque: Cela extrait du code du didacticiel sur la lecture et l'écriture de fichiers en Perl.

Ce qu'il fait d'abord, c'est d'ouvrir un fichier appelé data.txt (qui devrait résider dans le même répertoire que le script Perl). Ensuite, il lit le fichier dans la variable catchall $ _ ligne par ligne. Dans ce cas, $ _ est implicite et pas réellement utilisé dans le code.

Après avoir lu sur une ligne, tout espace est réduit à la fin de celui-ci. Ensuite, la fonction de fractionnement est utilisée pour couper la ligne sur le caractère de tabulation. Dans ce cas, l'onglet est représenté par le code \ t. À gauche du signe de la division, vous verrez que j'assigne un groupe de trois variables différentes. Ceux-ci représentent un pour chaque colonne de la ligne.

Enfin, chaque variable qui a été séparée de la ligne du fichier est imprimée séparément afin que vous puissiez voir comment accéder aux données de chaque colonne individuellement.

La sortie du script devrait ressembler à ceci:

 Nom: Larry

 Courriel: [email protected]

 Tél: 111-1111

 ---------

 Nom: Curly

 Courriel: [email protected]

 Tél: 222-2222

 ---------

 Nom: Moe

 Courriel: [email protected]

 Tél: 333-3333

 --------- 

Bien que dans cet exemple, nous imprimions simplement les données, il serait trivialement facile de stocker ces mêmes informations analysées à partir d'un fichier TSV ou CSV, dans une base de données à part entière.