readline 插入了意外的 space

Unexpected space inserted by readline

我在尝试读取和打印两个文件中的行时遇到问题。 这些文件相似,但总是在打印的第二行中插入 space。 我的档案里当然没有。

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()

结果如下:

Salut je m'appelle Yohan
 Salut je m'appelle Yohan

Je suis très content
 Je suis très content

with 块中打开文件会产生相同的结果。

预期的结果是

Salut je m'appelle Yohan
Salut je m'appelle Yohan

Je suis très content
Je suis très content

你知道我该如何解决这个问题吗?

文本文件中的每一行隐含地以换行符结尾 (\n)。当您打印出 line1line2 时,它实际上变成了:

Salut je m'appelle Yohan\n Salut je m'appelle Yohan

输出为

Salut je m'appelle Yohan
 Salut je m'appelle Yohan

要解决此问题,只需将 strip 添加到 readline 调用的末尾即可

    line1 = file1.readline().strip()
    line2 = file2.readline().strip()

    print(line1, line2, sep='\n')

    >>> Salut je m'appelle Yohan
    >>> Salut je m'appelle Yohan