今天論壇裡有人問怎麼實作類似linux top那樣輸出的效果.
單行不換行這個知道.但是這麼多行一直輸出還真沒折騰過.
搜尋發現 curses 可以實作這個效果.
一個把目前 ps aux 部分程序顯示出來的腳本
<code>#!/usr/bin/env python</code>
<code>import</code> <code>curses</code>
<code>import</code> <code>os</code>
<code>ch </code><code>=</code> <code>0</code>
<code>while</code> <code>ch !</code><code>=</code> <code>ord</code><code>(</code><code>"q"</code><code>):</code>
<code> </code><code>screen </code><code>=</code> <code>curses.initscr()</code>
<code> </code><code>screen.clear()</code>
<code># screen.border(0)</code>
<code> </code>
<code> </code><code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>100</code><code>):</code>
<code> </code><code>try</code><code>:</code>
<code> </code><code>screen.addstr(i</code><code>+</code><code>1</code><code>,</code><code>0</code><code>,os.popen(</code><code>"ps aux |awk 'NR==%s'"</code> <code>%</code> <code>i).read(),curses.A_NORMAL)</code>
<code> </code><code>screen.refresh()</code>
<code> </code><code>except</code><code>:</code>
<code> </code><code>pass</code>
<code> </code><code>ch </code><code>=</code> <code>screen.getch()</code>
<code>curses.endwin()</code>
本文轉自 nonono11 51CTO部落格,原文連結:http://blog.51cto.com/abian/1663906,如需轉載請自行聯系原作者