如何清除列表中每一行末尾的某些字符?

时间:2019-01-31 21:26:26

标签: python linux

我目前有一些代码可以从名为output.txt的文件中提取。它会仔细阅读这些行并将它们放在列表中。如果找到“成功”一词,它将把该行打印出来。目前,它打印出整行。我希望能够抓住每行的第一部分来执行下一个任务,但是在摆脱某个字符之后剩下的行时遇到了问题。

例如,行打印:

user:pass Success Info
user:pass Success Info

等等。

我想让它返回:

user:pass
user:pass
user:pass

我对python还是很陌生,所以我在如何摆脱其余的代码方面有些挣扎

我尝试将“成功”一词拆分开来,但这行不通。

lines = []
with open("output.txt", "r") as f:
    for line in f.readlines():
        if 'Success' in line:
            lines.append(line.rstrip('\n'))
for element in lines:
    print(element)

它当前打印user:pass Success Info

我想要的实际输出是user:pass

我愿意接受任何建议

2 个答案:

答案 0 :(得分:3)

在现有资源的基础上,使用find

lines = []
with open("output.txt", "r") as f:
    for line in f.readlines():
        if 'Success' in line:
            lines.append(line[:line.find("Success")-1])
for element in lines:
    print(element)

答案 1 :(得分:1)

如果您知道要打印的内容中没有空格,并且知道要打印的内容将始终位于任何空格之前,请尝试以下操作:

some_text = 'user:pass Success'
split_text = some_text.split(' ')
print(split_text[0])