在python中清除标准输出中的当前行

在python中清除标准输出中的当前行,python,bash,operating-system,Python,Bash,Operating System,所以我用python编写了一个程序,要求用户重复输入。一段时间后,前面的命令也开始生成 > Ping Pong! > Hello Hey there! >say whats up? Whats up? 我编写这些命令只是为了展示示例 我想添加一个动画,添加一个。。。到一个词的结尾,例如 i choose. 那就把线清除吧 i choose.. i choose... 那就把线清除吧 i choose.. i choose... 诸如此类,但我需要清除屏幕,以使其正常

所以我用python编写了一个程序,要求用户重复输入。一段时间后,前面的命令也开始生成

> Ping
Pong!
> Hello
Hey there!
>say whats up?
Whats up?
我编写这些命令只是为了展示示例

我想添加一个动画,添加一个。。。到一个词的结尾,例如

i choose.
那就把线清除吧

i choose..
i choose...
那就把线清除吧

i choose..
i choose...

诸如此类,但我需要清除屏幕,以使其正常工作,我希望用户命令和响应的历史记录在那里。有没有办法使用python或导入操作系统只删除一行而不是整个屏幕?谢谢

您正在查找回车符,
\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)

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

您正在查找回车符,
\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)

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

您应该可以使用普通的“print”来实现这一点,只需在print语句的末尾添加一个逗号:

from time import sleep

print ‘I choose.’,  
sleep(0.5)
print ‘.’,  
sleep(0.5)
print ‘.’ 

编辑:在睡眠中添加,以使动画更符合预期。

您应该可以使用普通的“打印”来完成此操作,只需在打印语句的末尾添加一个逗号:

from time import sleep

print ‘I choose.’,  
sleep(0.5)
print ‘.’,  
sleep(0.5)
print ‘.’ 

编辑:在睡眠中添加,以使动画更符合预期。

@baker如果答案满足您的要求,请考虑接受和/或投票的答案。我试图说,我需要等待2分钟,但一旦时间到了,我会给你一个绿色检查。请考虑接受和/或投票的答案。我试图说,我需要等待2分钟,但一旦时间到了,我会给你一个绿色检查。