python - 多行标准输出刷新问题

2 投票
3 回答
1659 浏览
提问于 2025-04-16 05:31

我有一个用Python写的统计应用程序,它会定时刷新SSH屏幕上的统计信息。目前,它是通过执行os.system('clear')来清屏,然后输出多行数据。

我想用一个\r来替代执行清屏命令,但这个方法只适用于一行。请问有没有办法做到多行更新呢?

我想要的一个经典例子是,当你执行“top”命令时,它会列出当前的进程,并且在不执行“clear”的情况下更新屏幕,显示很多行信息。

有没有人能给我一些建议呢?

3 个回答

0

对于简单的应用程序,你可以使用:

print('\n' * number_of_lines)

如果你想做更复杂的事情,可以使用标准库里的 curses 模块。

2

我解决了这个问题,使用了:

import curses
window = curses.initscr()
window.addstr(1, 0, "my text")
window.refresh()
curses.endwin() 
1

这段话其实没有直接回答你的问题,但用os.system来清空终端是没什么问题的(除了在不同操作系统上可能会有差异)。在这种情况下,你可以使用下面的代码:

os.system('cls' if os.name=='nt' else 'clear')

撰写回答