【问题标题】:How can i change an already printed out character into another discarding the printed text? [duplicate]如何将已打印的字符更改为另一个丢弃打印的文本? [复制]
【发布时间】:2018-01-10 01:40:26
【问题描述】:

我可以在删除前一个字符的同时将一个已经打印出来的字符更改为另一个字符吗?例如程序如何显示'_' 2秒,(删除或更改)并显示字符's'?

【问题讨论】:

  • 我想将 '_' 替换为 's'(不是数字)
  • @Smart 那么问题Python code to cause a backspace 可能对您更有帮助。答案与副本的答案非常相似,但它侧重于如何制作退格键。特别是,最新的答案显示了一个基于时间的擦除示例,该示例被新字符集替换,您可以非常简单地将其调整为 "_""s" 示例。
  • 然后将代码更改为您想要的代码:sys.stdout.write('%s\r' % '_'); sys.stdout.flush(); time.sleep(2); sys.stdout.write('%s\n' % 's')

标签: python


【解决方案1】:

退格的字符是'\b'

你要求的任务的用法是这样的

import sys, time

print('I am about to show you something _\b', end='')
sys.stdout.flush() # Make sure above string gets printed in time
time.sleep(2)
print('THIS!')

另外,回车的字符是'\r',它允许你重写整行。您可以使用它,例如打印进度条

import sys, time
for i in range(0, 50):
    print('[{}{}] {}%'.format('|' * i, '-' * (50-1-i), 2*i+2), end='\r')
    sys.stdout.flush()
    time.sleep(0.01)
print('')

【讨论】:

  • 您的第一个代码行 3(第一个 'print')生成语法错误
  • @smart 你确定你复制/粘贴对了吗?它也可以在我的计算机和在线编译器上运行。错误说明了什么?
  • 只是语法错误
  • @smart 你用的是什么python版本?
  • 我使用的是 2.4.3
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-08
  • 2020-08-08
  • 2017-11-09
  • 1970-01-01
  • 2013-02-23
  • 2018-02-01
  • 1970-01-01
相关资源
最近更新 更多