python - 在python中清除STDOUT中的当前行
问题描述
所以我用python制作了一个程序,重复要求用户输入。过了一会儿,前面的命令开始建立起来,就这样。
> Ping
Pong!
> Hello
Hey there!
>say whats up?
Whats up?
我编写命令只是为了展示示例
我想添加一个在单词末尾添加 ... 的动画,例如
i choose.
然后清除线路然后
i choose..
然后清除线路然后
i choose...
依此类推,但我需要清除屏幕才能使其正常工作,并且我希望用户命令和响应的历史记录仍然存在。有没有办法使用 python 或导入 os 只删除一行而不是整个屏幕?谢谢!
解决方案
您正在寻找回车符,\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)
这实际上是人们在命令行中制作进度条的方式。
推荐阅读
- laravel - 多对多到 MorphToMany 关系
- algorithm - 像被击中的数据结构
- c# - 如何将 WSDL Web 引用添加到 .NET Standard 库
- angularjs - 如何在 Spring Boot 控制器中检索“simpSessionId”?
- express - 配置错误 Nginx + ExpressGateway + Express API + Socket.io
- java - 带有 jlink 的 Java 中不提供 ECDSA 算法
- java - 如何导入一个maven项目并使其成为另一个项目的模块
- generics - Kotlin 中 Reactor Mono 扩展函数的泛型问题
- redis - 如何使用 Apache NiFi RedistributedMapCacheClientService 在 Redis 上设置 TTL
- javascript - 如何从文本数组中替换句子中的多个单词?