簡體   English   中英

如何編輯打印到stdout的字符串?

[英]How can I edit a string that was printed to stdout?

如何編輯剛打印的字符串? 例如,對於倒數計數器(首先打印30,然后將其更改為29,依此類推)

謝謝。

打印回車符\\r它會將光標移回到行的開頭。 確保您不會打印換行符\\n結尾,因為你不能走回頭路線。 這意味着您必須執行以下操作:

import time
import sys
sys.stdout.write('29 seconds remaining')
time.sleep(1)
sys.stdout.write('\r28 seconds remaining')

(與使用print相反, print會在它寫入stdout的內容添加換行符。)

如果您的目標是Unix / Linux,那么“curses”會讓編寫控制台程序變得非常容易。 它處理顏色,光標定位等。查看python包裝器: http//docs.python.org/library/curses.html

如果您使用類似xterm的輸出設備,那么執行此操作的方法是重寫輸出。 您必須確保在編寫數字時以回車符(沒有換行符)結束,這會將光標移回行的開頭而不會前進到下一行。 您編寫的下一個輸出將替換當前顯示的數字。

你不能改變你打印的內容。 打印的是什么。 但是,就像bradley.ayers說的那樣,你可以回到行的開頭並在舊值上打印一些新內容。

您可以使用readline模塊,該模塊還可以提供自定義的完成命令歷史記錄

暫無
暫無

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

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