2013-09-08 4 views
6

Я пытаюсь захватить и управлять данными в сеансе Telnet с помощью telnetlib, все идет неплохо, однако моя новизна с Python вызывает у меня головную боль.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() или данных()?

Любое направление было бы удивительным ... Извините за действительно простой вопрос, но материал, который я читал и не пытался до сих пор сделали ничего, но расстроить меня, моя клавиатура не может занять гораздо больше злоупотребления :)

ответ

11

Вы можете удалить последнюю строку в строку, как это:

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

работал отлично. Благодаря тонну! – user2735454

+2

Это не работает, если есть только одна строка, вместо этого удаляется последний символ (тогда как, вероятно, он должен возвращать пустую строку). Должен проверить, возвращает ли rfind -1 и действует соответственно. – Thomas

Смежные вопросы