【问题标题】:Python - Remove Last Line From StringPython - 从字符串中删除最后一行
【发布时间】:2013-09-12 00:58:49
【问题描述】:

我正在尝试使用 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() 中删除最后一行数据?

任何方向都很棒...对不起这个非常简单的问题,但到目前为止我读过和尝试过的东西除了让我感到沮丧之外什么也没做,我的键盘不能再被滥用了:)

【问题讨论】:

    标签: python telnetlib


    【解决方案1】:

    您可以像这样删除字符串的最后一行:

    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.
    >>>
    

    【讨论】:

    • 完美运行。非常感谢!
    • 如果只有一行,这不起作用,它将删除最后一个字符(而它可能应该返回空字符串)。应该检查 rfind 是否返回 -1 并采取相应措施。
    猜你喜欢
    • 1970-01-01
    • 2017-08-19
    • 2015-03-23
    • 1970-01-01
    • 2011-01-19
    • 2019-01-22
    相关资源
    最近更新 更多