print
неявно добавить новую строку после строки.
Чтобы предотвратить это, в Python 2.x добавьте ,
в конце инструкции печати.
print "\r Getting hosts %i" % int(100/count*len(lines)),
В Python 3.x, используйте следующий добавить end=''
аргумент:
print("\r Getting hosts %i" % int(100/count*len(lines)), end='')
Или использовать sys.stdout.write
(работает как в Python 2.x, Python 3.x):
import sys
....
sys.stdout.write("\r Getting hosts %i" % int(100/count*len(lines)))
Стандартный выход обычно буферизирован. Вам может понадобиться очищать поток каждый раз, когда вы пишете.
sys.stdout.flush()
100/count*len(lines)
кажется странным. Может, ты имеешь в виду следующее?
100 * count/len(lines)
Что вы думаете '\ r'? – devnull
Возвращает курсор к началу – Saphire
Это делает это, _precisely_. – devnull