[英]Is there a way to replace a previously outputted text in Python?
我想做些事情,但是不幸的是我完全不知道該怎么做,我懷疑有人問過。 因此,基本上,我想要的是在先前區域中輸出文本的程序。 我會盡力解釋。
假設我在屏幕上輸出了以下文本:
===========================================================================================
===========================================================================================
我的問題是,有沒有一種方法可以在不使用pygame的情況下,用特定的文本替換行之間的空白行,而無需再次打印行? 是否可以使用例如Python IDLE或直接在終端中使用,還是只能使用pygame或類似的東西?
看起來像這樣,例如:
===========================================================================================
Hello World!
===========================================================================================
您可以將curses
庫用於這種純文本UI。 這是一個簡單的示例,首先打印水平線,然后一段時間后,在前一行上添加一個字符串。
import time, curses
scr = curses.initscr()
scr.addstr(0, 0, "#" * 80)
scr.addstr(2, 0, "#" * 80)
scr.refresh()
time.sleep(1)
scr.addstr(1, 35, "Hello World")
scr.refresh()
盡管應該有多個庫來處理此任務,但是您應該查看curses
和colorama
。 我不確定curses
但是肯定可以通過colorama
(通過pip
安裝)。
這是一個例子:
from colorama import *
def pos(x, y):
return '\x1b['+str(y)+';'+str(x)+'H'
def display():
init() #just for safety here; needed in Windows
print(Fore.RED+pos(30, 10)+ 'This string is a different place!')
display()
給定您的輸出,例如,在文件test.dat
:
===========================================================================================
===========================================================================================
在vim
一條簡單的代碼就可以產生想要的輸出:
:3s/^$/Hello World!
如果要在腳本中自動執行此操作: hello.sh
#!/bin/bash
ex test.dat <<-EOF
:3s/^$/Hello World!
wq " Update changes and quit.
EOF
輸出:
===========================================================================================
Hello World!
===========================================================================================
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.