Backspace неприятности - PullRequest
0 голосов
/ 27 ноября 2010

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

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)

Ответы [ 2 ]

4 голосов
/ 27 ноября 2010

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

Добавить

import sys

к началу вашего скрипта и измените цикл на

while True:
    print(wipe+time.asctime(), end='')
    sys.stdout.flush()
    time.sleep(1)
1 голос
/ 27 ноября 2010

Проблема не в версии 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 сбрасывается только при печати новой строки.

...