2016-04-22 49 views
1

我有一個輸出幾個numpy的matricies和其他一些信息到我的終端以這種方式Python程序: Terminal outputPython的終端文本輸出格式化

目前,查看數據,我按照這個順序:

  1. 打印數據
  2. 清除屏幕
  3. 重新打印(和重複)

但是,這實在是效率低下。我希望能夠做的是在程序運行時看到數字的變化,但沒有屏幕清理的開銷。有沒有一種方法可以使用本地python格式化我的輸出,這樣我就不必去執行這個昂貴的操作了?這個想法是我可以有一些像htop(或類似格式的終端程序,如cmus)。

謝謝!

+1

我不知道這是否可以不使用庫LIK完成e'curses' https://docs.python.org/2/howto/curses.html否則,你將受制於標準輸出 – Will

回答

0

爲什麼清理屏幕是這樣的開銷?該終端最有可能是一個固定大小的緩衝區,它被舊的線路「向上滾動」覆蓋。重寫輸出可能需要幾ms(或更多,取決於它的大小)。 如果輸出真的很大,可以考慮一種不同的方法,例如,切片你的矩陣,只輸出改變或使用一個圖來檢查你的數據(提示:矩陣可以顯示爲圖像)。 如果你真的需要終端上的「固定」顯示器,那麼curses模塊就是要走的路,但是你的輸出不能那麼大,否則無論如何它都不適合終端窗口。如果你需要實現滾動,那麼考慮移動到圖形用戶界面。

+0

在我的服務器上(腳本運行的地方),這個過程有一個可測量的放緩原因不明。另外,清除屏幕會導致很多閃爍,使得任何數據難以閱讀(主要是爲了更改) –

+0

數字是否非常頻繁地變化?只有當某些事情發生變化時才刷新顯示屏幕?如果不是,你真的需要'curses'。 – Cyb3rFly3r

+0

大多數數字保持不變,並且只有在滿足某些更改時纔會打印該腳本,所以更改想法已經存在。看起來它會成爲我的「詛咒」。 –

0

可以使用watch shell命令

,如果它是一個Python腳本,也可以在一個獨特的Python腳本trasformed

手錶-n 1 '蟒蛇xxx.py'

1是刷新時間更新之間

-d亮點變化

+1

我曾經考慮過這個問題,但我不知道我的程序的確切刷新率,'-d'選項雖然相當不錯! –

+0

你需要比1秒更快嗎? 或腳本打印其他如果沒有準備好? – user3484569