Python - 从字符串中删除最后一行

12

我正在尝试使用telnetlib捕获和操作Telnet会话中的数据,目前进展还算顺利,但是我的Python新手状态让我有些头疼。

我的问题非常简单,我能够捕获并显示我想要的数据(到目前为止),但是每当我尝试从已捕获的数据中删除最后一行数据时,我似乎总是遇到错误。我的代码大致如下:

... Snipped Boring Stuff ...
tn.write('command to gather data' + '\r')
data = tn.read_very_eager()
print data
... snipped more boring stuff ...

非常简单... 那么我该如何从tn.read_very_eager()或data()中删除最后一行数据呢?

任何指导都会很棒... 抱歉问题太简单了,但是到目前为止我读过和尝试过的东西只让我感到沮丧,我的键盘已经受不了更多虐待了 :)

1个回答

24

您可以按照以下方式删除字符串的最后一行:

def remove_last_line_from_string(s):
    return s[:s.rfind('\n')]

string = "String with\nsome\nnewlines to answer\non StackOverflow.\nThis line gets removed"

print string
string = remove_last_line_from_string(string)
print '\n\n'+string

输出结果将是:

>>>
String with
some
newlines to answer
on StackOverflow.
This line gets removed


String with
some
newlines to answer
on StackOverflow.
>>>

3
如果只有一行,则此方法无法正常工作,它会删除最后一个字符(实际上应该返回空字符串)。需要检查rfind是否返回-1,并根据情况采取行动。 - Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接