Python 3 - Как создать эффект печати в окне командной строки - PullRequest
0 голосов
/ 25 января 2019

Так что у меня небольшая проблема. У меня есть этот код:

def typingeffect(string):
    string = list(string)
    for i in string:
        print(i, end="")
        sleep(0.2)

typingeffect("Hello")

Когда я запускаю этот код через Python (3.7) IDLE, он работает как положено, помещая один символ за другим с задержкой в ​​0,2 секунды. Однако, когда я запускаю его через cmd.exe, он просто печатает его одной строкой.

Он работает только через команду, если вынуть end="", и в этом случае он печатает буквы с задержкой на 0,2 секунды, но с новой строкой после каждого символа, что приводит не к эффекту ввода, а с:

H
e
l
l
o

Если у кого-нибудь есть решение, почему это происходит и как это можно исправить, я был бы очень признателен.

Заранее спасибо.

1 Ответ

0 голосов
/ 25 января 2019

Вы можете использовать параметр flush для print, чтобы всегда очищать буфер вывода после каждого вызова:

def typingeffect(string):
    for i in string:
        print(i, end="", flush=True)
        sleep(0.2)

В противном случае сброс для стандартного вывода обычно происходит только для новых строк.

...