在控制台中重写多行:超越最后一行
在控制台中重新打印多行被证明是一个特殊的挑战。虽然可以用“r”更改最后显示的行,但自定义前面的行仍然是一项难以捉摸的任务。
了解需求
此问题会在各种情况下出现:
跨平台解决方案
理想的解决方案同时满足 Unix 和 Windows 环境:
Windows:存在多个选项,包括:
使用curses的简单示例
使用curses,重写多行成为一项简单的任务:
import curses import time def report_progress(filename, progress): stdscr.addstr(0, 0, "Moving file: {0}".format(filename)) stdscr.addstr(1, 0, "Total progress: [{1:10}] {0}%".format(progress * 10, "#" * progress)) stdscr.refresh() if __name__ == "__main__": stdscr = curses.initscr() curses.noecho() curses.cbreak() try: for i in range(10): report_progress("file_{0}.txt".format(i), i+1) time.sleep(0.5) finally: curses.echo() curses.nocbreak() curses.endwin()
以上是如何在控制台中重写多行?的详细内容。更多信息请关注PHP中文网其他相关文章!