1

例如,我有一个简单的 .txt 文件,其中包含一堆行

motorola phone
happy cows
teaching
school work
far far north
teaching
hello

现在我要做的就是读取所有这些字符串并打印出来。因此,如果该行包含我要打印的教学,teaching is awesome 那么这是我的代码

with open("input.txt", "r") as fo:
    for line in fo:
        if "teaching" in line:
            line = line.rstrip('\n') + " is awesome"
            print line
        else:
            print(line.rstrip('\n'))

但这是打印

在此处输入图像描述

那么字符串的其余部分发生了什么。因为假设打印教学很棒,不是吗。有人可以解释python的这种行为吗?谢谢

4

3 回答 3

1
rstrip('\r\n') 

奇迹般有效。必须提到我在 Ubuntu 上,但它只能在 Windows 中使用'\n' .

于 2017-01-24T17:55:44.400 回答
0

您可能有一个带有'\r\n'并且rstrip正在返回的 windows 文件,\r这意味着回车返回到行的开头并被覆盖。

尝试rstrip('\r').rstrip('\n')

于 2017-01-24T16:09:33.323 回答
0

对我来说它也有效......但我使用的是python 3,所以我在打印后加上圆括号......但你在第7行而不是第5行使用......?!

with open("input.txt", "r") as fo:
    for line in fo:
        if "teaching" in line:
            line = line.rstrip('\n') + " is awesome"
            print(line)
        else:
            print(line.rstrip('\n'))

这是输出:

motorola phone
happy cows
teaching is awesome
school work
far far north
teaching is awesome
hello
>>> 
于 2017-01-24T16:21:08.377 回答