Analisi dei file di testo con Perl

L'analisi dei file di testo è uno dei motivi per cui Perl è un ottimo strumento di data mining e scripting.

Come vedrai di seguito, Perl può essere sostanzialmente utilizzato per riformattare un gruppo di testo. Se guardi verso il basso il primo blocco di testo e poi l'ultima parte nella parte inferiore della pagina, puoi vedere che il codice nel mezzo è ciò che trasforma il primo set nel secondo.

Come analizzare i file di testo

Ad esempio, costruiamo un piccolo programma che apre un file di dati separato da tabulazioni e analizza le colonne in qualcosa che possiamo usare.

Dì, ad esempio, che il tuo capo ti consegna un file con un elenco di nomi, e-mail e numeri di telefono e vuole che tu legga il file e fare qualcosa con le informazioni, come metterlo in un database o semplicemente stamparlo in un formato ben formattato rapporto.

Le colonne del file sono separate dal carattere TAB e assomiglierebbero a questo:

 Larry [email protected] 111-1111

 Curly [email protected] 222-2222

 Moe [email protected] 333-3333 

instagram viewer

Ecco l'elenco completo con cui lavoreremo:

 #! / Usr / bin / perl


 open (FILE, 'data.txt');

 mentre () {

 chomp;

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

 stampa "Nome: $ name \ n";

 stampa "Email: $ email \ n";

 stampa "Telefono: $ telefono \ n";

 stampa "\ n";

 }

 chiudi (FILE);

 Uscita;


Nota: Questo estrae un po 'di codice dal tutorial in poi come leggere e scrivere file in Perl.

Quello che fa prima è aprire a file chiamato data.txt (che dovrebbe risiedere nella stessa directory dello script Perl). Quindi, legge il file nella variabile catchall $ _ riga per riga. In questo caso, $ _ è implicito e non effettivamente utilizzato nel codice.

Dopo aver letto in una riga, qualsiasi spazio bianco è chomped alla fine. Quindi, la funzione di divisione viene utilizzata per interrompere la linea sul carattere di tabulazione. In questo caso, la scheda è rappresentata dal codice \ t. A sinistra del segno della divisione, vedrai che sto assegnando un gruppo di tre diverse variabili. Questi rappresentano uno per ogni colonna della linea.

Infine, ogni variabile che è stata divisa dalla riga del file viene stampata separatamente in modo da poter vedere come accedere ai dati di ciascuna colonna singolarmente.

L'output dello script dovrebbe essere simile al seguente:

 Nome: Larry

 Email: [email protected]

 Telefono: 111-1111


 Nome: riccio

 Email: [email protected]

 Telefono: 222-2222


 Nome: Moe

 Email: [email protected]

 Telefono: 333-3333


Sebbene in questo esempio stiamo solo stampando i dati, sarebbe banalmente facile archiviare le stesse informazioni analizzate da un file TSV o CSV, in un database completo.

instagram story viewer