python-3.x - 在同一行写入输出,在 python 控制台上完全清除前一行
问题描述
此代码演示进度并Done...
在同一控制台行打印并退出程序
import time
filename = 'file-name.txt'
for i in range(0, 101):
time.sleep(0.1)
print('Downloading File %s [%d%%]\r'% (filename, i), end="", flush=True)
print('Done...\r\n', end="", flush=True)
问题是当程序结束时,它在最后一行的末尾有前一行的残余。下面的输出演示了程序运行时的单行更新。
电流输出(单线更新)
Downloading File file-name.txt [1%]
.
.
Downloading File file-name.txt [100%]
Done...ding File file-name.txt [100%]
预期输出(单行更新)
Downloading File file-name.txt [1%]
.
.
Downloading File file-name.txt [100%]
Done...
在这里发现了同样的问题,但它并没有解决这个问题。如果没有前一行的残余,我怎样才能实现预期输出。我想添加不是很pythonic'\b\b\b\b\b\b\b\b\b\b'
解决方案
这个不可打印的字符\x1b[2K擦除当前行并修复了问题。
import time
filename = 'file-name.txt'
for i in range(0, 101):
time.sleep(0.1)
print('Downloading File %s [%d%%]\r'% (filename, i), end="", flush=True)
print('\x1b[2K', end="")
print('Done...\r\n', end="", flush=True)
推荐阅读
- c# - 带有可更新数据源的 C# DataGridView
- ios - expo ios 模拟器“无法连接到开发服务器”错误(适用于浏览器)
- javascript - next/dynamic 拒绝导入异步函数
- java - okta 对应用程序进行身份验证时如何获取会话
- google-chrome - mv3中chrome扩展中的`eval`
- sql - Azure SQL 锁
- php - 当我更新 1 个单元格时如何使用 X 可编辑数据表更改我的 update.php 将更改同一行中的 2 个单元格
- java - 读取persistence.xml文件时出现props.loadFromXML错误:文档根元素“persistence”,必须匹配DOCTYPE根“null”
- android - react-native for androidx,我发现这个错误
- node.js - 用户分条自动支付到客户帐户