簡體   English   中英

如何編輯控制台輸出

[英]How to edit console output

我有以下非常簡單的代碼

stdout.write("Hello World")
stdout.write("\rBye world")
stdout.write("\rActually hello back")

哪個會按預期打印“實際上打個招呼”,但是如果我要添加換行符

stdout.write("\n")

我怎樣才能返回換行符,然后返回到行首,所以我實際上可以只輸出“ Hi”而不是

Actually hello back
Hi

我試過了

stdout.write("\r")
stdout.write("\b")

然而,他們似乎都沒有成功。 最終目標是顯示大量文本,然后實時更新輸出而無需再次寫入。 我如何在python中實現呢?

編輯我的問題與建議的問題不同,因為我不想修改一行。 我希望能夠打印4-5行文本,然后實時替換它們,而不僅僅是被修改的一行。

好吧,如果您想完全控制終端,我建議您使用curses庫

curses模塊提供了curses庫的接口,curses庫是便攜式高級終端處理的實際標准。

使用它,您可以像這樣在終端中編輯多行:

import curses
import time

stdscr = curses.initscr()

stdscr.addstr("line 1\n")
stdscr.addstr("line 2\n")
stdscr.refresh()
time.sleep(3)

stdscr.erase()
stdscr.addstr("edited line 1\n")
stdscr.addstr("edited line 2\n")
stdscr.refresh()
time.sleep(3)

curses.endwin()

但是,該庫的功能要強大得多。 完整的教程在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM