如何在同一屏幕行显示动态输出
在某些情况下,需要用新数据替换当前控制台输出,而不是而不是附加它。一种常见的方法是利用回车符('r')返回到当前行的开头:
简单版本:
for x in range(10): print(x, end='\r') print()
通过以“r”结束每个打印语句,光标将返回到行的开头,而不前进到下一行。这允许后续的打印语句覆盖先前的输出。
行清理:
如果新输出可能比当前行短,则需要执行额外的步骤清除剩余字符:
for x in range(75): print('*' * (75 - x), x, end='\x1b[1K\r') print()
转义序列 'x1b[1K' 清除从光标位置到末尾的所有字符
长换行:
对于超过行宽的输出,可以禁用换行以确保连续字符相互覆盖:
# Disable line wrapping print('\x1b[7l', end='') # Overwrite output for x in range(75): print('*' * (75 - x), x, end='\r') # Re-enable line wrapping print('\x1b[7h', end='') # Advance to next line print()
注意:禁用换行后重新启用换行至关重要,以防止任何错误未来控制台输出的问题。
以上是如何在同一行覆盖控制台输出?的详细内容。更多信息请关注PHP中文网其他相关文章!