Печать текста в печатный текст после его печати - PullRequest
0 голосов
/ 24 апреля 2020

Моя идея заключалась в том, чтобы вставить строку медленного текста в набор печатного текста после того, как печатный текст закончил печататься.

Так, например:

@@@@@@@@@@@@@@
@  SlowText  @
@@@@@@@@@@@@@@

Граница будет распечатана немедленно, а затем SlowText появится через короткий промежуток времени, медленно записывая

Я попробовал несколько различных медленно движущихся фрагментов текста, чтобы выполнить фактическое написание. например:

def print_slow(txt):
    for x in txt:                    
        print(x, end='', flush=True) 
        sleep(0.1)

и

def insertedtext():
    text = " E..n..j..o..y..."
    for character in text:
        sys.stdout.write(character)
        sys.stdout.flush()
        time.sleep(0.05)

Я пытался использовать '#'+ words + '#', пытался добавить туда еще один print("words"). Черт возьми, я даже пытался сделать его переменной, но, поскольку я совсем новичок в Python, я просто могу понять, что это достаточно, чтобы найти его самостоятельно. Любая / все помощь оценена.

1 Ответ

0 голосов
/ 24 апреля 2020

Я думаю, это то, что вы ищете:

from time import sleep

def make_box (character, width) :
    print (character * (width + 4))
    print (character + ' ' * (width + 2) + character)
    print (character * (width + 4))

def print_slow (character, text):
    print ('\033[2A' + character, end = ' ')
    for x in text:                    
        print (x, end='', flush=True) 
        sleep (0.1)
    print ()

box_character = '@'
text = 'This is a test'
make_box (box_character, len (text))
print_slow (box_character, text)

Печать строки ('\033[2A... перемещает курсор вверх на две строки.

...