Procurar palavras dentro de uma lista ou .txt

6,809 views
Skip to first unread message

Lusac

unread,
Nov 5, 2011, 11:41:18 AM11/5/11
to python-brasil
Olá pessoal,

Essa é minha primeira postagem na lista. Sou iniciante em python e
estou com um problema que não consigo resolver.

É o seguinte: Dado uma lista com texto imenso ou um arquivo .txt
mesmo, eu gostaria de procurar por uma determinada palavra. Quando eu
encontrar essa palavra, gostaria de copiar toda linha aonde ela esta.

Por exemplo:

"Hoje é dia 01.
Deve chover hoje.
Vou almoçar ao meio dia."

Se eu procurar pela palavra "dia", teria que copiar a linha 1 e a
linha 3.

É possivel fazer isso?
Obrigado a todos!

Abraços.

Daniel Batista Lemes

unread,
Nov 5, 2011, 11:59:17 AM11/5/11
to python...@googlegroups.com
Não sei se é maneira mais pythonica de fazer isso, visto que também
sou iniciante em python, mas ai tem uma solução

http://pastebin.com/xLVv7z8T

> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
>    http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
>    python-brasi...@googlegroups.com
>

--


@lemes_daniel

Alysson Bruno

unread,
Nov 5, 2011, 12:22:41 PM11/5/11
to python...@googlegroups.com
>>> for lin in open("teste.txt"):
...     if 'dia' in lin:
...       print(lin)

paz e amor (love and peace),

Alysson Bruno
Palmas(TO)
Brasil

http://abruno.com


Luiz Aoqui

unread,
Nov 5, 2011, 12:41:56 PM11/5/11
to python...@googlegroups.com
Fazer buscas em texto pode ser uma coisa complicada. Veja se você precisa considerar coisas como:
  • maiúscula/minúscula (Dia e dia são consideradas coisas diferentes?)
  • pontuação (você pode ter no texto coisas como "dia,", "dia.", "dia?", "dia)",  "dia!")
  • a palavra que você está buscando "dentro" de outra palavra (por exemplo "diáspora", "diabetes")
  • tamanho dos dados (se você tiver GB de dados não é uma boa ideia carregar tudo na memória)
Mas claro, tudo isso depende dos seus dados. As soluções anteriores são boas por serem simples e, se funcionarem para você, não há necessidade de adicionar as complicações que eu mencionei acima.

Leonardo Santagada

unread,
Nov 5, 2011, 1:58:34 PM11/5/11
to python...@googlegroups.com
Quase prefeito Daniel, eu dei uma melhorada, mas estou sem python aqui
pra ver se esta tudo bem.

http://pastebin.com/hGFMV10B

em suma tu não precisa do readlines e nem de parenteses em volta do if.

2011/11/5 Daniel Batista Lemes <dle...@gmail.com>:

--
Leonardo Santagada

Lusac

unread,
Nov 5, 2011, 2:30:23 PM11/5/11
to python-brasil
Perfeito! Eu não conhecia esse "with ... as ..." que vcs utilizaram.
Provavelmente por isso tudo que tentei fracassou :P
Vou dar uma pesquisada pra ver oque faz exatamente.

Luiz, por enquanto não preciso lidar com essas variações!

Obrigado galera!

Daniel Batista Lemes

unread,
Nov 5, 2011, 3:50:27 PM11/5/11
to python...@googlegroups.com
Valeu Leonardo,

Depois também fiquei na dúvida se precisava de readlines, quanto aos
parênteses eu tenho que dar uma lida nas convenções para ver esses
padrões.

Abraço

Reply all
Reply to author
Forward
0 new messages