2014-11-09 1 views
4

У меня есть этот код:sys.stdout.flush() не работает должным образом в течение цикла в питона

sys.stdout.write("\r [*] Serching for "+FirstName+" AND "+LastName) 
sys.stdout.flush() 

Но когда я положил его в петлю, шаг за шагом у меня есть смесь FirstName с друг с другом, а также LastName s друг с другом.

Searching for TEST_THREE AND EXAMPLE_THREE #First time 
Searching for TEST_TWOEE AND EXAMPLE_TWOEE #Next time 

Вы видите там EE из THREE после TWO ...

Как я могу это исправить?

ответ

5

Проложить строку с дополнительными пространствами. Например, с помощью str.ljust:

msg = "[*] Serching for {} AND {}".format(first_name, last_name) 
sys.stdout.write("\r " + msg.ljust(70)) 
sys.stdout.flush() 

использованием str.format:

msg = "[*] Serching for {} AND {}".format(first_name, last_name) 
sys.stdout.write("\r {:<70}".format(msg)) 
sys.stdout.flush() 
+0

@mhawke, спасибо за поправки. – falsetru

+0

Pardon, но у меня есть ERRO: 'AttributeError: объект 'str' не имеет атрибута 'foramt'' – MLSC

+1

@MortezaLSC, извините, это была опечатка. Это формат. – falsetru