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 [email protected] 111-1111

 Cirtaini [email protected] 222–2222

 Moe [email protected] 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: [email protected]

 Tālrunis: 111-1111


 Vārds: cirtaini

 E-pasts: [email protected]

 Tālrunis: 222–2222


 Vārds: Moe

 E-pasts: [email protected]

 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ē.

instagram story viewer