2015-05-16 4 views
1

Я написал сценарий для вычисления времени отклика для доступа к веб-сайту. Ниже приводится заявление для печати в моем сценарии:Наложение перекрытий на Python

print "OK: Completed in %s %s|time=%s"%(delta, host, seconds) 

Выход:

$ ./script.py 
|time=3.693447in 0:00:03.693447 HIT from 127.0.0.1 

Как вы можете видеть, переменная времени получает печать на линии всасывания линии, как мой выход перекрывается.

Может кто-нибудь помочь мне определить, что я делаю неправильно в заявлении print.

ответ

3

У вас есть \r возврат каретки в переменной host (как последний символ). Это возвращает курсор к началу строки, в результате чего оставшаяся часть строки (|time=....) перезаписывает все, что было раньше.

Вы можете использовать str.strip() method, чтобы очистить его от переменной:

print "OK: Completed in %s %s|time=%s" % (delta, host.strip(), seconds) 

str.strip() Метод удаляет все пробелы из начала и конца строки (возвращает новый объект строки); пробел определяется как вкладки, пробелы, новые строки и возврат каретки.

Демо:

>>> delta = '0:00:03.693447' # a string will do for the demo 
>>> seconds = 3.693447 
>>> host = 'foobar\r' 
>>> print "OK: Completed in %s %s|time=%s"%(delta, host, seconds) 
|time=3.693447in 0:00:03.693447 foobar 
>>> print "OK: Completed in %s %s|time=%s" % (delta, host.strip(), seconds) 
OK: Completed in 0:00:03.693447 foobar|time=3.693447 
+1

Благодаря Martijin. Это сработало для меня :-) –

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