2010-11-27 3 views
0

Почему это мои часы Python работают только с Python2, Python3 ничего не делает.Backspace problem

from __future__ import print_function 
import time 
wipe = '\b'*len(time.asctime()) 
print("The current date and time are: "+' '*len(wipe), end='') 
while True: 
    print(wipe+time.asctime(), end='') 
    time.sleep(1) 

ответ

4

В Python 3 вам необходимо очистить буфер печати, чтобы заставить символы записываться на экран.

Добавить

import sys 

в начале вашего сценария и изменить цикл для

while True: 
    print(wipe+time.asctime(), end='') 
    sys.stdout.flush() 
    time.sleep(1) 
+0

На самом деле это также необходимо для Python 2.x (по крайней мере, при использовании функции печати). – 2010-11-27 18:12:29

1

Проблема не с версией Python, а то, что вы забыли очистить стандартный вывод. Попробуйте изменить свой код на:

from __future__ import print_function 
import time 
import sys 
wipe = '\b'*len(time.asctime()) 
print("The current date and time are: "+' '*len(wipe), end='') 
while True: 
    print(wipe+time.asctime(), end='') 
    sys.stdout.flush() 
    time.sleep(1) 

sys.stdout только сбрасывается при печати новой строки.