¿Sabes cómo puedes analizar archivos de texto con Perl?

El análisis de archivos de texto es una de las razones por las que Perl es una gran herramienta de minería de datos y scripting.

 

Como verá más adelante, Perl se puede usar básicamente para reformatear un grupo de texto. Si miras el primer trozo de texto y luego la última parte al final de la página, puedes ver que el código en el medio es lo que transforma el primer conjunto en el segundo.

 

Cómo analizar archivos de texto con Perl

Como ejemplo, construyamos un pequeño programa que abra un archivo de datos separado por tabulaciones, y analice las columnas en algo que podamos usar.

Digamos, por ejemplo, que su jefe le entrega un archivo con una lista de nombres, correos electrónicos y números de teléfono, y quiere que usted lea el archivo y haga algo con la información, como ponerla en una base de datos o simplemente imprimirla en un informe bien formateado.

Las columnas del archivo se separan con el carácter TAB y tendrían el siguiente aspecto:

 

 Larry Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. 111-1111

Curly Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. 222-2222

Moe Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. 333-3333

 

Aquí está el listado completo con el que trabajaremos:

 

 #!/usr/bin/perl

open (FILE, 'data.txt');

while (<FILE>) {

chomp;

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

print "Name: $name\n";

print "Email: $email\n";

print "Phone: $phone\n";

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

}

close (FILE);

exit;

Nota: Esto saca algo de código del tutorial de cómo leer y escribir archivos en Perl que ya he configurado. Echa un vistazo a esto si necesitas una actualización.

 

Lo primero que hace es abrir un archivo llamado data.txt (que debería residir en el mismo directorio que el script Perl). Luego, lee el archivo en la variable global $_ línea por línea. En este caso, el $_ está implícito y no se utiliza realmente en el código.

 

Después de leer en una línea, cualquier espacio en blanco es arrancado al final de la misma. A continuación, la función de partición se utiliza para romper la línea en el tabulador. En este caso, la pestaña está representada por el código \t. A la izquierda del signo de la división, verás que estoy asignando un grupo de tres variables diferentes. Éstos representan uno para cada columna de la línea.

Finalmente, cada variable que se ha separado de la línea del archivo se imprime por separado para que pueda ver cómo acceder a los datos de cada columna individualmente.

 

La salida del script debería ser algo así:

 

 Name: Larry

Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Phone: 111-1111

---------

Name: Curly

Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Phone: 222-2222

---------

Name: Moe

Email: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Phone: 333-3333

---------

Aunque en este ejemplo sólo estamos imprimiendo los datos, sería trivialmente fácil almacenar la misma información analizada desde un archivo TSV o CSV, en una base de datos completa.

(0 votes)