Como analisar arquivos de texto com Perl

Empresário usando computador no escritório

Simon Potter/Cultura/Getty Images





A análise de arquivos de texto é uma das razões pelas quais o Perl é uma ótima ferramenta de mineração de dados e script.

Como você verá abaixo, Perl pode ser usado basicamente para reformatar um grupo de texto. Se você olhar para o primeiro pedaço de texto e depois para a última parte na parte inferior da página, poderá ver que o código no meio é o que transforma o primeiro conjunto no segundo.



Como analisar arquivos de texto

Como exemplo, vamos construir um pequeno programa que abre um arquivo de dados separado por tabulação e analisa as colunas em algo que podemos usar.

Digamos, por exemplo, que seu chefe lhe entrega um arquivo com uma lista de nomes, e-mails e números de telefone e quer que você leia o arquivo e faça algo com as informações, como colocá-lo em um banco de dados ou apenas imprimi-lo em um relatório bem formatado.



As colunas do arquivo são separadas pelo caractere TAB e ficariam assim:

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

Aqui está a lista completa com a qual trabalharemos:

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

Observação: Isso puxa algum código do tutorial em como ler e escrever arquivos em Perl .

O que ele faz primeiro é abrir um Arquivo chamado data.txt (que deve residir no mesmo diretório que o script Perl). Em seguida, ele lê o arquivo na variável catchall $_ linha por linha. Neste caso, o $_ é implícita e não é realmente usado no código.



Depois de ler em uma linha, qualquer espaço em branco é mastigado fora do final dela. Em seguida, a função de divisão é usada para quebrar a linha no caractere de tabulação. Neste caso, a aba é representada pelo código . À esquerda do sinal da divisão, você verá que estou atribuindo um grupo de três variáveis ​​diferentes. Estes representam um para cada coluna da linha.

Por fim, cada variável que foi separada da linha do arquivo é impressa separadamente para que você possa ver como acessar os dados de cada coluna individualmente.



A saída do script deve ser algo assim:

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

Embora neste exemplo estejamos apenas imprimindo os dados, seria trivialmente fácil armazenar essas mesmas informações analisadas de um arquivo TSV ou CSV, em um banco de dados completo.