Come analizzare i 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 pezzo 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 faccia qualcosa con le informazioni, come metterlo in un database o semplicemente stamparlo in un rapporto ben formattato.

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 

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 su come leggere e scrivere file in Perl.

Quello che fa per primo è aprire un 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, ogni spazio bianco viene tagliato alla fine di esso. 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.