Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida]Como evitar pular linhas ao printar elementos extraídos de um arquivo?

Programei o seguinte código:

with open('meses.txt', mode='r', encoding='cp1252') as meses:
    for mes in meses:

        print(f'{mes.upper()}23!F2', end=';')

Contextualizando, o arquivo 'meses.txt' contem uma lista com o nome de todos os meses do ano, dispostos um em cada linha de forma sequencial. A saída que eu esperava era uma única linha composta por uma sequência de todos os meses acompanhados pelo complemento '23!F2;', sendo que na minha concepção não deveria passar para outra linha após o print pois alterei o parâmetro end para ';'. No entanto, esse código me retorna a seguinte saída:

JANEIRO
23!F2;FEVEREIRO
23!F2;MARCO
23!F2;ABRIL
23!F2;MAIO
23!F2;JUNHO
23!F2;JULHO
23!F2;AGOSTO
23!F2;SETEMBRO
23!F2;OUTUBRO
23!F2;NOVEMBRO
23!F2;DEZEMBRO
23!F2;

Considerando que as quebras de linha ocorrem sempre após o print da variável mes, imagino que exista ai alguma informação que desconheço. Alguem poderia me ajudar com isso?

2 respostas
solução!

Olá Fellipe, tudo bem com você?

Quando estamos trabalhando com a leitura de arquivos as quebras de linhas presentes no arquivo são interpretadas como o caractere de nova linha (\n), assim, ao fazermos a leitura usando o laço for e imprimimos as linhas do arquivo será adicionado uma nova linha a cada impressão.

Para que a impressão ocorra em uma única linha, além da adição do atributo end= a função print(), será necessário utilizarmos a função replace() para substituir o caractere de nova linha (\n) por uma string vazia ('').

mes = mes.replace('\n', '')

Para que a substituição possa ser utilizada posteriormente, será necessário atribuir novamente a uma variável, neste caso é reatribuida a variável mes.

Abaixo o código já implementado.

with open('meses.txt', mode='r', encoding='cp1252') as meses:
    for mes in meses:
        mes = mes.replace('\n', '')
        print(f'{mes.upper()}23!F2', end=';')

Resultado

JANEIRO23!F2;FEVEREIRO23!F2;MARCO23!F2;ABRIL23!F2;MAIO23!F2;JUNHO23!F2;JULHO23!F2;AGOSTO23!F2;SETEMBRO23!F2;OUTUBRO23!F2;NOVEMBRO23!F2;DEZEMBRO23!F2;

Gostaria de aproveitar a oportunidade e deixar a recomendação do curso Python: trabalhando com I/O, onde será abordado as técnicas utilizadas no python para a manipulação de arquivos.

Lembre-se que pode contar sempre com o fórum Alura, seja para tirar dúvidas e para compartilhar o seu desenvolvimento.

Espero ter ajudado, fico à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Ei Felippe, muito obrigado pelo esclarecimento! Agradeço também pela recomendação do curso, irei iniciá-lo em breve.