Jak analizować pliki tekstowe za pomocą Perl

Biznesmen korzystający z komputera w biurze

Simon Potter/Kultura/Getty Images





Parsowanie plików tekstowych jest jednym z powodów, dla których Perl jest doskonałym narzędziem do eksploracji danych i tworzenia skryptów.

Jak zobaczysz poniżej, Perl może być używany do ponownego sformatowania grupy tekstu. Jeśli spojrzysz w dół na pierwszy fragment tekstu, a następnie na ostatnią część na dole strony, zobaczysz, że kod w środku przekształca pierwszy zestaw w drugi.



Jak analizować pliki tekstowe

Jako przykład, zbudujmy mały program, który otwiera plik danych oddzielony tabulatorami i analizuje kolumny w coś, czego możemy użyć.

Powiedzmy na przykład, że szef wręcza ci plik z listą nazwisk, adresów e-mail i numerów telefonów i chce, abyś przeczytał plik i zrobił coś z informacjami, na przykład umieścił go w bazie danych lub po prostu wydrukował w ładnie sformatowanym raporcie.



Kolumny pliku są oddzielone znakiem TAB i wyglądają mniej więcej tak:

|_+_||_+_|
|_+_|
|_+_|

Oto pełna lista, z którą będziemy pracować:

|_+_||_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|

Notatka: To pobiera trochę kodu z samouczka jak czytać i zapisywać pliki w Perlu .

To, co robi najpierw, jest otwarte a plik o nazwie data.txt (który powinien znajdować się w tym samym katalogu co skrypt Perla). Następnie wczytuje plik do zmiennej catchall $_ wiersz po wierszu. W tym przypadku $_ to ukryty i faktycznie nie są używane w kodzie.



Po przeczytaniu w wierszu wszelkie białe znaki są chrupać koniec. Następnie funkcja split służy do łamania linii na znaku tabulacji. W tym przypadku zakładka jest reprezentowana przez kod . Po lewej stronie znaku podziału zobaczysz, że przypisuję grupę trzech różnych zmiennych. Stanowią one jeden dla każdej kolumny wiersza.

Na koniec każda zmienna, która została rozdzielona z wiersza pliku, jest drukowana osobno, dzięki czemu można zobaczyć, jak uzyskać dostęp do danych każdej kolumny z osobna.



Wynik skryptu powinien wyglądać mniej więcej tak:

|_+_||_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|
|_+_|

Chociaż w tym przykładzie po prostu drukujemy dane, byłoby banalnie łatwo przechowywać te same informacje przeanalizowane z pliku TSV lub CSV w pełnoprawnej bazie danych.