Ola pessoal,
O usuário informa Nome = raw_input("Nome: ")
Como faço para percorrer todo arquivo.txt e remover todas as linhas que encontrar (Nome)?
Abs[]/
__________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
[As partes desta mensagem que não continham texto foram removidas]
2010/3/19 James Tiago <jamesguindani@yahoo.com.br>:
> O usuário informa Nome = raw_input("Nome: ")
Dica 1: a convenção em Python é usar iniciais maiúsculas apenas no
nome de classes. No caso fica melhor assim:
nome = raw_input("Nome: ")
> Como faço para percorrer todo arquivo.txt e remover todas as linhas que encontrar (Nome)?
Dica 2: se vocẽ quer mesmo usar a linguagem Python, vale muito a pena
dedicar algumas horas para ler o tutorial oficial de Python, em
português:
http://www.python.org.br/wiki/TutorialPython
Porque é muito fácil fazer esse tipo de coisa em Python.
Vejamos uma possível solução. Por "remover todas as linhas" eu vou
entender que você quer gerar uma saída onde as linhas com o nome não
apareçam. Fica assim:
########################################
entrada = raw_input("Entrada: ")
nome = raw_input("Nome: ")
for linha in open(entrada):
if nome not in linha:
print linha
########################################
Agora, o ideal é você ler os argumentos (nome do arquivo, nome a
remover) da linha de comando, em vez de usar raw_input, pois fica mais
fácil integrar o script com outras coisas. Para isso vocẽ usaria o
módulo sys, variável sys.arg (leia na documentação)
Finalmente, vale notar que quem usa Linux ou MacOSX ou qualquer Unix
jamais faria um programa assim, porque ele já vem pronto: chama-se
grep.
Veja só:
$ grep -v nome_a_remover arq_entrada > arq_saida
Pronto!
[ ]s
Luciano
PS. Leia o tutorial de Python. Vale a pena!
--
"""
O burocrata consegue transformar qualquer solução em um problema.
"""
2010/3/19 Luciano Ramalho <ramalho@gmail.com>:
> Agora, o ideal é você ler os argumentos (nome do arquivo, nome a
> remover) da linha de comando, em vez de usar raw_input, pois fica mais
> fácil integrar o script com outras coisas. Para isso vocẽ usaria o
> módulo sys, variável sys.arg (leia na documentação)
Oops, o nome correto da variável é sys.argv.
--
"""
O burocrata consegue transformar qualquer solução em um problema.
"""
Fala,
não entendi muito bem o que deve ser feito mas...
se quiser percorrer um txt e remover uma linha inteira que contém uma palavra "nome:", faça assim:
abra o arquivo (open)
leia-o utilizando readlines, para poder ler linha por linha e nao letra por letra e armazene em uma variável ex:
linhas=arquivo.readlines()
agora examine linha por linha e apague a que tiver a palavra "nome"
for linha in linhas: #para examinar linha a linha
palavrasdalinha = line.split(" ")
for palavra in palavrasdalinha:
if palavra=="nome:":
linha=""
break
espero q seja isso
Até mais
--- Em python-brasil@yahoogrupos.com.br, James Tiago <jamesguindani@...> escreveu
>
> Ola pessoal,
>
> O usuário informa Nome = raw_input("Nome: ")
>
> Como faço para percorrer todo arquivo.txt e remover todas as linhas que encontrar (Nome)?
>
> Abs[]/
>
>
> __________________________________________________________
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
1
--- Em sex, 19/3/10, Luciano Ramalho <ramalho@gmail.com> escreveu:
De: Luciano Ramalho <ramalho@gmail.com>
Assunto: Re: [python-brasil] Remover LInhas TXT
Para: python-brasil@yahoogrupos.com.br
Data: Sexta-feira, 19 de Março de 2010, 23:13
2010/3/19 Luciano Ramalho <ramalho@gmail. com>:
> Agora, o ideal é você ler os argumentos (nome do arquivo, nome a
> remover) da linha de comando, em vez de usar raw_input, pois fica mais
> fácil integrar o script com outras coisas. Para isso vocẽ usaria o
> módulo sys, variável sys.arg (leia na documentação)
Oops, o nome correto da variável é sys.argv.
--
"""
O burocrata consegue transformar qualquer solução em um problema.
"""
__________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
[As partes desta mensagem que não continham texto foram removidas]
Ola Pedro, obrigado a todos que responderam, todas respostas foram uteis..
Mas me chamou a atenção do "sys.argv", do que usar "raw_input", então do mesmo jeito eu chamo no console: python script.py ?
Obrigado.
________________________________
De: pedro almeida <pdropi@yahoo.com.br>
Para: python-brasil@yahoogrupos.com.br
Enviadas: Sexta-feira, 19 de Março de 2010 11:33:41
2010/3/23 James Tiago <jamesguindani@yahoo.com.br>:
> Ola Pedro, obrigado a todos que responderam, todas respostas foram uteis..
>
> Mas me chamou a atenção do "sys.argv", do que usar "raw_input", então do mesmo jeito eu chamo no console: python script.py ?
Você pode chamar assim:
$ python script.py arquivo_entrada > arquivo_saida
E neste caso dentro do seu programa você gera a saída fazendo print,
apenas. Simplifica bastante, e fica fácil de combinar com outros
comandos do shell.
Se você colocar na primeira linha do script este texto:
#!/usr/bin/env python
pode então torná-lo um executável com o comando:
$ chmod +x script.py
e aí para rodar fica ainda mais simples:
$ ./script.py arquivo_entrada > arquivo_saida
[ ]s
Luciano
--
"""
O burocrata consegue transformar qualquer solução em um problema.
"""