Разбор на текстови файлове с Perl

click fraud protection

Разбирането на текстови файлове е една от причините Perl да направи страхотен инструмент за извличане на данни и скриптове.

Както ще видите по-долу, Perl може да се използва за преформатиране на група текст. Ако погледнете надолу първата част от текста и последната част в долната част на страницата, можете да видите, че кодът в средата е това, което трансформира първия набор във втория.

Как да анализираме текстови файлове

Като пример, нека да изградим малка програма, която отваря файл с данни, разделен на раздели, и анализира колоните в нещо, което можем да използваме.

Кажете например, че шефът ви изпраща файл със списък със имена, имейли и телефонни номера и иска да прочетете файла и направете нещо с информацията, като го поставете в база данни или просто го разпечатайте в добре форматиран докладва.

Колоните на файла са разделени с символа TAB и изглеждат така:

 Лари [email protected] 111-1111

 Къдрава къдрава@example.com 222-2222

 Moe [email protected] 333-3333 

Ето пълния списък, с който ще работим:

instagram viewer
 #! / ЮЕсАр / хамбар / Perl


 отворен (FILE, 'data.txt');

 докато () {

 Chomp;

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

 отпечатайте "Име: $ name \ n";

 отпечатайте "Email: $ email \ n";

 отпечатайте "Телефон: $ телефон \ n";

 отпечатайте "\ n";

 }

 затвори (ФАЙЛ);

 излезете;


Забележка: Това издърпва някакъв код от урока на как да четете и пишете файлове в Perl.

Това, което прави първо, е отворено a досие наречен data.txt (който трябва да се намира в същата директория като скрипта Perl). След това той чете файла в променливата $ cat по реда на $ _. В този случай $ _ е подразбиращи и всъщност не се използва в кода.

След като прочетете в ред, всяко бяло пространство е chomped от края му. След това функцията за разделяне се използва за прекъсване на линията на символа на раздела. В този случай разделът е представен от кода \T. Вляво от знака на разделянето ще видите, че приписвам група от три различни променливи. Те представляват по един за всяка колона на реда.

И накрая, всяка променлива, която е разделена от реда на файла, се отпечатва отделно, така че можете да видите как да получите достъп до данните на всяка колона поотделно.

Резултатът от скрипта трябва да изглежда така:

 Име: Лари

 Имейл: [email protected]

 Телефон: 111-1111


 Име: Къдрава

 Имейл: [email protected]

 Телефон: 222-2222


 Име: Moe

 Имейл: [email protected]

 Телефон: 333-3333


Въпреки че в този пример ние просто отпечатваме данните, би било тривиално лесно да съхраняваме същата информация, анализирана от TSV или CSV файл, в пълноценна база данни.

instagram story viewer