【问题标题】:Unexpected space inserted by readlinereadline 插入了意外的空间
【发布时间】:2022-01-10 01:05:08
【问题描述】:

当我尝试从两个文件中读取和打印行时遇到问题。 这些文件相似,但在打印的第二行中总是插入一个空格。 当然,我的文件中不存在任何人。

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

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

【问题讨论】:

    标签: python readline


    【解决方案1】:

    文本文件中的每一行都隐含地以换行符结尾 (\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
    

    【讨论】:

    • @PranavHosangadi 完成。 OP 并没有真正说明他们希望他们的输出看起来如何,所以只是给出了一个一般性的答案
    • 因为他们对第二行的额外空间提出了质疑,我认为他们希望每个都在没有空格的单独行上,但你是对的——@Yohan,请edit你的问题显示您的预期输出
    • 不是那么含蓄。换行在那里;大多数文本编辑器和其他程序只是通过将光标移动到下一行的开头而不是显示任何特定的字形来呈现它。
    • 感谢您的帮助。我终于找到了这篇文章,它提供了一些其他细节:link
    猜你喜欢
    • 2012-10-27
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多