开发者社区> 问答> 正文

如何以精美的方式擦除打印的文字?

我想创建使文本写入并擦除自身。我已经找到了如何使它每次写入每个字符,但是我还没有找到如何以相同的方式擦除它(从第一个字母到最后一个字母)

import time
import os
import sys
from time import sleep

txt = "wake up neo"

# writing itself (i wanted to do the same for deleting):
for x in txt:
  sys.stdout.write(x)
  sys.stdout.flush()
  sleep(0.05)

os.system("clear")
print("wake up neo")
time.sleep(3.0)

# here's where it starts to delete itself:
os.system("clear")
print("\r ake up neo")
time.sleep(0.05)
os.system("clear")
print("\r  ke up neo")
time.sleep(0.05)
os.system("clear")
print("\r   e up neo")
time.sleep(0.05)
os.system("clear")
print("\r     up neo")
time.sleep(0.05)
os.system("clear")
print("\r     up neo")
time.sleep(0.05)
os.system("clear")
print("\r      p neo")
time.sleep(0.05)
os.system("clear")
print("\r        neo")
time.sleep(0.05)
os.system("clear")
print("\r        neo")
time.sleep(0.05)
os.system("clear")
print("\r         eo")
time.sleep(0.05)
os.system("clear")
print("\r          o")
time.sleep(0.05)
os.system("clear")
print("\r")
os.system("clear")

不仅如此,我还希望文本保持静止。我不希望每个删除的字符的文本退缩。

我希望我已经清楚了。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 08:56:02 606 0
1 条回答
写回答
取消 提交回答
  • #!/usr/bin/env python
    import sys, time
    
    txt = "wake up neo"
    
    for t in (txt, '\r' + ' ' * len(txt) + '\n'):
        for x in t:
            sys.stdout.write(x)
            sys.stdout.flush()
            time.sleep(0.05)
        time.sleep(3))
    

    回答来源:stackoverflow

    2020-03-24 08:56:08
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载