天天看點

python curses庫

今天論壇裡有人問怎麼實作類似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,如需轉載請自行聯系原作者