Leia também:
Caso deseje trabalhar e ganhar dinheiro como programador Python:
O Caractere de Quebra de Linha em Arquivos: \n
Escreva em um artigo de texto, de nome bandas.txt o nome de algumas bandas favoritas que você tem.
As minhas bandas favoritas são:
Rush
Iron Maiden
Led Zeppelin
O arquivo deve conter só isso.
3 bandas, 3 linhas de informação.
Agora vamos criar um script em Python que exibe essas minhas três bandas favoritas.
Como já aprendemos em como ler um arquivo linha por linha com a readlines():
meuArquivo = open('bandas.txt', 'r') bandas = meuArquivo.readlines() for banda in bandas: print(banda)
meuArquivo.close()
Prontinho, a variável banda assume o valor de cada linha do arquivo de texto bandas e imprime as bandas, o resultado é:

Mas...peraí...tem uma coisa estranha, me incomodando:
Tem uma linha em branco ali, entre cada banda.
Que troço chato, que troço feio. Como se retira isso?
Aliás, por que aparece essa linha em branco a mais ?
A explicação é simples:
Ao digitar "Rush", você não digita "Rush".
Você digita "Rush\n", pois você dá um enter ali no final, pra quebrar a linha, pra ir pra linha de baixo.
Então, quando a variável banda vai pegar a string, ela não pega:
"Rush"
Ela pega:
"Rush\n"
Por isso aparece sempre uma linha nova, em branco, quando damos print.
Temos que remover essa maldita new line \n
Quando você vai jogar algum jogo, aparece:
"Fase: 5"
"Poder: 10"
"Defesa: 6"
E não:
"Fase: 5"
"Poder: 10"
"Defesa: 6"
Vamos lá! Vamo aprender a fazer o negócio direito!
Como Remover o Caractere de New Line: rstrip( '\n' )
Como explicamos, ao lermos (read() ou readlines() ou readline()) um arquivo, vamos pegar ele na forma de string, ou seja, é um texto.
Vamos usar um método chamado rstrip(), ele serve pra 'estripar' algum caractere, ou seja, retirar, dar um strip nele, e varrer da string.
No caso, queremos retirar o caractere de nova linha, então fazemos: rstrip('\n')
Ele é um método de objetos do tipo String.
No caso, a variável que vai armazenar as strings, uma por uma, é a variável banda, então aplicamos nela o método:
banda.rstrip('\n')
Ela retorna a mesma string banda, mas sem os caracteres \n.
Veja como fica nosso código:
meuArquivo = open('bandas.txt', 'r') bandas = meuArquivo.readlines() for banda in bandas: banda = banda.rstrip('\n') print(banda)
meuArquivo.close()
E o resultado:

Note que alteramos somente a variável temporária do LAÇO FOR, a banda.
Para alterarmos cada elemento da lista de strings bandas:
meuArquivo = open('bandas.txt', 'r') bandas = meuArquivo.readlines() for index in range(len(bandas)): bandas[index] = bandas[index].rstrip('\n')
meuArquivo.close()
Agora, toda a nossa lista bandas não tem mais o maledito carectere '\n' ao final de cada string.
Documentação Python:
Muito bom e foi útil. Obrigado
ResponderExcluirMe ajudou muito!! Obrigada
ResponderExcluirSó faltou isso no final do último cód:
ResponderExcluirprint(bandas[index])
Mas mesmo assim está sensacional!
meu deus, to a uma hora tentando, vcs me salvaram, obrigado
ResponderExcluirComo aplicar isso em uma base que temos quebra de linhas ?
ResponderExcluirTentei de resolver de outro jeito, mas nada. Obrigado.
ResponderExcluir