es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Espacio inesperado insertado por readline.

Me encuentro enfrentando un problema cuando intento leer e imprimir líneas de dos archivos.
Estos archivos son similares, pero siempre se inserta un espacio en la segunda línea impresa.
Por supuesto, nadie existe en mis archivos.

file1 = open("compare1", "r")
file2 = open("compare2", "r")
while 1:
    line1 = file1.readline()
    line2 = file2.readline()
    if line1 == "" or line2 == "":
        break
    print(line1, line2)
file1.close()
file2.close()

El resultado es el siguiente:

    Salut je m'appelle Yohan
     Salut je m'appelle Yohan
>
    Je suis très content
     Je suis très content

Abrir el archivo en un bloque with genera el mismo resultado.

El resultado esperado es el siguiente:

    Salut je m'appelle Yohan
    Salut je m'appelle Yohan
>
    Je suis très content
    Je suis très content

¿Tienes alguna idea de cómo puedo solucionar esto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que hay un carácter de salto de línea al final de la línea en line1, pero no en line2. Una forma de solucionar este problema es eliminar el carácter de salto de línea al final de cada línea antes de imprimirlo. Puedes hacerlo utilizando la función rstrip():

    file1 = open("compare1", "r")
    file2 = open("compare2", "r")
    while 1:
        line1 = file1.readline().rstrip()
        line2 = file2.readline().rstrip()
        if line1 == "" or line2 == "":
            break
        print(line1, line2)
    file1.close()
    file2.close()
    

    Esto debería darte el resultado esperado sin el espacio adicional en la segunda línea.

Comments are closed.