Tekstu failu parsēšana ar Perl

Teksta failu parsēšana ir viens no iemesliem, kāpēc Perl padara lielisku datu ieguves un skriptu veidošanas rīku.

Kā redzēsit zemāk, Perlu var izmantot, lai pamatā formatētu teksta grupu. Ja paskatās uz pirmo teksta daļu un pēc tam uz pēdējo daļu lapas apakšā, jūs varat redzēt, ka kods vidū ir tas, kas pārveido pirmo kopu otrajā.

Kā parsēt teksta failus

Piemēram, izveidosim nelielu programmu, kas atver no cilnēm atdalītu datu failu un kolonnas parsē kaut ko, ko mēs varam izmantot.

Sakiet, piemēram, ka jūsu priekšnieks jums nodod failu ar vārdu, e-pasta un tālruņu numuru sarakstu un vēlas, lai jūs lasītu failu un kaut ko dariet ar informāciju, piemēram, ievietojiet to datu bāzē vai vienkārši izdrukājiet labi formatētā formā Ziņot.

Faila slejas ir atdalītas ar rakstzīmi TAB, un tās izskatās apmēram šādi:

 Lerijs larijs@piemers.com 111-1111

 Cirtaini cirtaini@piemers.com 222–2222

 Moe moe@example.com 333-3333 

Šeit ir pilns saraksts, ar kuru mēs strādāsim:

 #! / usr / bin / perl


 atvērt (FILE, 'data.txt');
instagram viewer

 kamēr () {

 chomp;

 ($ vārds, $ e-pasts, $ tālrunis) = split ("\ t");

 drukāt "Name: $ name \ n";

 drukāt "E-pasts: $ email \ n";

 drukāt "Tālrunis: $ tālrunis \ n";

 drukāt "\ n";

 }

 aizvērt (FILE);

 Izeja;


Piezīme: Tas izvelk kādu kodu no apmācības kā lasīt un rakstīt failus Perl.

Tas, ko tas dara vispirms, ir atvērts a failu ko sauc par data.txt (tam vajadzētu atrasties tajā pašā direktorijā kā Perl skripts). Pēc tam tas katru rindiņu rindā nolasa failu kešatmiņas mainīgajā $ _. Šajā gadījumā $ _ ir netieši un faktiski netiek izmantots kodā.

Pēc lasīšanas rindiņā jebkura atstarpe ir chomped pie tā beigām. Pēc tam sadalīšanas funkciju izmanto, lai pārtrauktu tabulas zīmes līniju. Šajā gadījumā cilni attēlo kods \ t. Pa kreisi no dalījuma zīmes redzēsit, ka es piešķiru trīs dažādu mainīgo grupu. Tie apzīmē vienu katrai rindas kolonnai.

Visbeidzot, katrs mainīgais, kas ir sadalīts no faila rindas, tiek iespiests atsevišķi, lai jūs varētu redzēt, kā piekļūt katras kolonnas datiem atsevišķi.

Skripta izvadei vajadzētu izskatīties apmēram šādi:

 Vārds: Lerijs

 E-pasts: larry@example.com

 Tālrunis: 111-1111


 Vārds: cirtaini

 E-pasts: curly@example.com

 Tālrunis: 222–2222


 Vārds: Moe

 E-pasts: moe@example.com

 Tālrunis: 333-3333


Lai gan šajā piemērā mēs tikai izdrukājam datus, būtu triviāli viegli saglabāt to pašu informāciju, kas parsēta no TSV vai CSV faila, pilnvērtīgā datu bāzē.