terça-feira, 6 de agosto de 2013

     Existem diversas maneiras de manipularmos strings no Python. Uma aplicação bem comum é a necessidade de trabalharmos apenas com algum pedaço desta string. No exemplo deste post, veremos como extrair uma informação de data contida em uma string contendo o título de uma notícia extraída da internet. Nossa string será representada por :

a = 'Folha de S. Paulo - Mercado - Banco Schahin e investigado por desvio - 04/08/2013'

     Nosso objetivo é extrair apenas a informação '04/08/2013'. A maneira mais elegante de realizar esta tarefa é trabalhar com as expressões regulares (regex). Entretanto, dedicaremos um post apenas para falar deste assunto. Para o exemplo de hoje, temos interesse em mostrar diversos operadores para manipular strings. Vamos a eles!

     O primeiro operador é o comando split(). Com ele, partimos a string utilizando algum parâmetro como referência, tendo como resultado um array. Sua sintaxe é:

string.split('parâmetro')

     Em nosso exemplo:


     Separamos a string utilizando o caractere '-', já que a data está logo após. Inserimos este resultado em b, que agora é um array com 4 elementos. Agora, separaremos a data utilizando:


     Aqui, temos um novo comando len() utilizado para sabermos o comprimento de um array. Assim, a variável data receberá a posição [len(b)-1] do array b, que nada mais é do que a última posição onde está a data. Subtraímos 1 pois as posições de arrays em Python começam em 0.

     Note também que tentamos, uma primeira vez, armazenar nossa data, mas o resultado foi seu valor ainda seguido de um espaço. Isto aconteceu pois havia este espaço na string original, após o caractere '-'. Assim, fizemos nova tentativa com o operador split() que, sem argumentos, utiliza o espaço como separador padrão. Temos assim nossa data extraída.

     Só para não deixar passar o momento, e se quiséssemos mudar o padrão da data de dd/mm/aaaa para um outro, como dd-mm-aaaa? É simples, e basta usarmos o operador replace(), que possui a sintaxe string.replace('old','new'). Em nosso exemplo:


     Note que utilizamos data[0] pois a data extraída anteriormente era um array e estes objetos não suportam o atributo replace().

     Fizemos um caminho longo para extrair a data, mas o objetivo não era apenas esse; queríamos mostrar também uma série de operadores para manipular strings no Python.

     Até o próximo post!

   

0 comentários:

Postar um comentário