首页 > 解决方案 > 在python中清除STDOUT中的当前行

问题描述

所以我用python制作了一个程序,重复要求用户输入。过了一会儿,前面的命令开始建立起来,就这样。

> Ping
Pong!
> Hello
Hey there!
>say whats up?
Whats up?

我编写命令只是为了展示示例

我想添加一个在单词末尾添加 ... 的动画,例如

i choose.

然后清除线路然后

i choose..

然后清除线路然后

i choose...

依此类推,但我需要清除屏幕才能使其正常工作,并且我希望用户命令和响应的历史记录仍然存在。有没有办法使用 python 或导入 os 只删除一行而不是整个屏幕?谢谢!

标签: pythonbashoperating-system

解决方案


您正在寻找回车符,\r. 当您打印该字符时,前一行将被清除。例如:

import time
print('I choose',end='',flush=True)
time.sleep(1)
print('\rI choose.',end='',flush=True)
time.sleep(1)
print('\rI choose..',end='',flush=True)
time.sleep(1)
print('\rI choose...',end='',flush=True)

这实际上是人们在命令行中制作进度条的方式。


推荐阅读