Parsing av tekstfiler med Perl

click fraud protection

Parsing av tekstfiler er en av grunnene til at Perl lager et flott verktøy for data mining og scripting.

Som du vil se nedenfor, kan Perl brukes til å omformatere en tekstgruppe. Hvis du ser ned på den første delen av teksten og deretter den siste delen nederst på siden, kan du se at koden i midten er det som forvandler det første settet til det andre.

Slik analyserer jeg tekstfiler

La oss som et eksempel lage et lite program som åpner en fanefil-separert datafil, og analyserer kolonnene til noe vi kan bruke.

Si som et eksempel at sjefen din gir deg en fil med en liste over navn, e-post og telefonnumre, og vil at du skal lese filen og gjør noe med informasjonen, som å legge den inn i en database eller bare skrive den ut på et pent formatert rapportere.

Filens kolonner er atskilt med TAB-tegnet og vil se noe slik ut:

 Larry [email protected] 111-1111

 Curly [email protected] 222-2222

 Moe [email protected] 333-3333 

Her er den fullstendige oppføringen vi skal jobbe med:

 #! / Usr / bin / perl


 åpen (FIL, 'data.txt');
instagram viewer

 samtidig som () {

 chomp;

 ($ navn, $ e-post, $ telefon) = delt ("\ t");

 skriv ut "Navn: $ navn \ n";

 skriv ut "E-post: $ e-post \ n";

 skriv ut "Telefon: $ telefon \ n";

 trykk "\ n";

 }

 lukke (FIL);

 exit;


Merk: Dette henter litt kode fra opplæringen på hvordan du kan lese og skrive filer i Perl.

Hva den gjør først er å åpne a fil kalt data.txt (som skal ligge i samme katalog som Perl-skriptet). Deretter leser den filen inn i fangstvariabelen $ _ linje for linje. I dette tilfellet er $ _ forstått og faktisk ikke brukt i koden.

Etter å ha lest på en linje, er et hvilket som helst hvitområde chomped av slutten av det. Deretter brukes delingsfunksjonen for å bryte linjen på fanekarakteren. I dette tilfellet er fanen representert med koden \ t. Til venstre for splittens tegn, vil du se at jeg tildeler en gruppe med tre forskjellige variabler. Disse representerer en for hver kolonne på linjen.

Til slutt skrives hver variabel som er delt fra filens linje separat, slik at du kan se hvordan du får tilgang til hver kolonnes data individuelt.

Produksjonen av skriptet skal se slik ut:

 Navn: Larry

 E-post: [email protected]

 Telefon: 111-1111


 Navn: Krøllete

 E-post: [email protected]

 Telefon: 222-2222


 Navn: Moe

 E-post: [email protected]

 Telefon: 333-3333


Selv om vi bare skriver ut dataene i dette eksemplet, vil det være trivielt enkelt å lagre den samme informasjonen som er analysert fra en TSV- eller CSV-fil, i en fullverdig database.

instagram story viewer