Jak analizować pliki tekstowe za pomocą Perl
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.