【问题标题】:Printing text into a printed text after it's printed打印后将文本打印成打印文本
【发布时间】:2020-08-08 11:44:44
【问题描述】:

我的想法是在打印好的文本打印完后,在一组打印的文本中插入一行慢行文本。

例如:

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

边框会立即打印出来,然后会在很短的时间后出现SlowText,慢慢写出来。

我尝试了几种不同的慢速文本 sn-ps 来执行实际的写作。喜欢:

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 还很陌生,我似乎可以弄清楚它或者正确地用谷歌搜索它,以便我自己找到它。提供任何/所有帮助。

【问题讨论】:

  • 如果先打印边框,则需要 ncurses 之类的东西来重新定位文本光标。

标签: python text-based


【解决方案1】:

我想这就是你要找的东西:

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)

行 print ('\033[2A... 将光标向上移动两行。

【讨论】:

  • 我承认 make_box 非常漂亮,但遗憾的是,当我尝试你的代码时,它会输出这个:( ```@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@←[2A@这是一个测试```
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 2023-03-11
  • 2012-11-01
  • 2021-10-09
  • 1970-01-01
  • 2019-02-08
相关资源
最近更新 更多