Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

Como Retirar a Quebra de Linha (caractere \n) em Python

Neste tutorial de nosso Curso de Python, vamos aprender como remover o caractere de nova linha ou quebra de lina, o \n das strings que lemos de arquivos.

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.

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 é:

Curso completo de Python, Tutorial online e Apostila para download


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:
Como programar em Python - Curso com certificado grátis

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:

6 comentários:

  1. Muito bom e foi útil. Obrigado

    ResponderExcluir
  2. Me ajudou muito!! Obrigada

    ResponderExcluir
  3. Só faltou isso no final do último cód:
    print(bandas[index])
    Mas mesmo assim está sensacional!

    ResponderExcluir
  4. meu deus, to a uma hora tentando, vcs me salvaram, obrigado

    ResponderExcluir
  5. Como aplicar isso em uma base que temos quebra de linhas ?

    ResponderExcluir
  6. Tentei de resolver de outro jeito, mas nada. Obrigado.

    ResponderExcluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo