Tekstbestanden ontleden met Perl

Het ontleden van tekstbestanden is een van de redenen waarom Perl een geweldige tool is voor datamining en scripting.

Zoals je hieronder zult zien, kan Perl worden gebruikt om in feite een groep tekst opnieuw op te maken. Als je naar het eerste stuk tekst kijkt en vervolgens naar het laatste deel onderaan de pagina, kun je zien dat de code in het midden de eerste set in de tweede transformeert.

Tekstbestanden parseren

Laten we als voorbeeld een klein programma bouwen dat een door tabs gescheiden gegevensbestand opent en de kolommen parseert in iets dat we kunnen gebruiken.

Stel bijvoorbeeld dat je baas je een bestand overhandigt met een lijst met namen, e-mails en telefoonnummers, en wil dat je leest het bestand en doe iets met de informatie, zoals het in een database plaatsen of het gewoon mooi opgemaakt afdrukken verslag doen van.

De kolommen van het bestand worden gescheiden door het TAB-teken en zien er ongeveer zo uit:

 Larry [email protected] 111-1111

 Curly [email protected] 222-2222

 Moe [email protected] 333-3333 

instagram viewer

Hier is de volledige lijst waarmee we zullen werken:

 #! / usr / bin / perl


 open (BESTAND, 'data.txt');

 terwijl () {

 chomp;

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

 print "Naam: $ naam \ n";

 print "E-mail: $ email \ n";

 print "Telefoon: $ phone \ n";

 print "\ n";

 }

 sluiten (BESTAND);

 Uitgang;


Notitie: Dit haalt wat code uit de tutorial hoe bestanden in Perl te lezen en te schrijven.

Wat het eerst doet is open a het dossier genaamd data.txt (dat zou in dezelfde map moeten staan ​​als het Perl-script). Vervolgens wordt het bestand regel voor regel in de catchall-variabele $ _ gelezen. In dit geval is de $ _ impliciet en niet echt gebruikt in de code.

Na het lezen in een regel is elke witruimte dat kauwde aan het einde ervan. Vervolgens wordt de splitsfunctie gebruikt om de regel op het tabbladteken te verbreken. In dit geval wordt het tabblad weergegeven door de code \ t. Links van het teken van de splitsing zie je dat ik een groep van drie verschillende variabelen toewijs. Deze vertegenwoordigen één voor elke kolom van de regel.

Ten slotte wordt elke variabele die is gesplitst van de regel van het bestand afzonderlijk afgedrukt, zodat u kunt zien hoe u de gegevens van elke kolom afzonderlijk kunt openen.

De uitvoer van het script zou er ongeveer zo uit moeten zien:

 Naam: Larry

 E-mail: [email protected]

 Telefoon: 111-1111


 Naam: Curly

 E-mail: [email protected]

 Telefoon: 222-2222


 Naam: Moe

 E-mail: [email protected]

 Telefoon: 333-3333


Hoewel we in dit voorbeeld alleen de gegevens afdrukken, zou het triviaal eenvoudig zijn om dezelfde informatie uit een TSV- of CSV-bestand op te slaan in een volwaardige database.