This article will describe usage of curses library.
Table of Contents
1 import
Import curses.
import curses
2 Initialize
- Initialize curses with curses.initscr(), and get screen handler object.
- Disable echo by keyboard input with curses.noecho().
stdscr = curses.initscr() curses.noecho()
3 Draw
- Clear screen with stdscr.clear().
- Add string to screen with stdscr.addscr(). You need to call stdscr.addscr() multiple time for drawing multiple strings before calling stdscr.clear().
- Draw screen with stdscr.clear().
stdscr.clear() stdscr.addstr(y, x, string) stdscr.refresh() time.sleep(1)
4 Finalize
Finalization must be done even if exception happens. If finalization is not done, terminal console will be collapsed. You need to run "stty sane" for fixing it.
- Enable echo by keyboard input with curses.echo().
- Finalize curses with curses.endwin().
curses.echo() curses.endwin()
5 Sample code
Sample code draws string on every seconds until after 10 seconds. This can be interrupted by Ctrl + C.
#!/usr/bin/env python
import curses
import time
if __name__ == "__main__":
try:
stdscr = curses.initscr()
curses.noecho()
for t in range(0, 10):
stdscr.clear()
stdscr.addstr(
0, 0, 'Program will be terminated after %s seconds' % (10 - t))
stdscr.refresh()
time.sleep(1)
except:
# Exception by Ctrl + C
pass
finally:
curses.echo()
curses.endwin()