python y el modulo curses

Filed under General, Software Libre, Técnico

bueno todavía estoy practicando python en consola y después sigo con pygtk :D
pero todavía falta.

que hay de nuevo esta vez? …se llama curses

no tiene nada que ver con cursos(esta bien escrito) curses, es un modulo de python para manejar algo como una terminal virtual.
quien ya maneja ncurses sabe de que hablo. para quien a usado conio.h es algo parecido pero no igual (yo no he usado “eso”)

curses permite controlar el entorno de la consola virtual que crea. No me voy a poner a explicar todo acá, dejo los enlaces que encontré, en ingles, en español no encontré algo con bastante información.

documentación oficial sobre el modulo curses de python:
http://docs.python.org/lib/module-curses.html

una pequeña guia:
http://www.amk.ca/python/howto/curses/curses.html

de resto en google se encuentra mas

ahora un ejemplo que hice de como funciona:

archivo: pymats.py

#!/usr/bin/env pthon
# -*- coding: utf-8 -*-

import sys
import curses
from primos import primo

try:
    stdscr = curses.initscr()
    curses.echo()

    i = 0
    while i < 1:
        stdscr.addstr(“=== scripts de matemáticas en python ===\\n\\n”)
        lista_menu = ["nprimo" , "mcm" , "mcd"]
        cont_menu = 0
        for n in lista_menu:
            cont_menu = cont_menu + 1
            stdscr.addstr(“%d - %s\\n” % (cont_menu, n))
        stdscr.addstr(“0 - Salir”)
        stdscr.addstr(“\\n\\n introdusca una opción: “)
        opt = stdscr.getstr()
        opt = opt.lower()

        if opt == “nprimo” or opt == “1″:
            primo()
        elif opt == “mcm” or opt == “2″:
            stdscr.clear()
            stdscr.addstr(“mcm\\n\\n”)
        elif opt == “mcd” or opt == “3″:
            stdscr.clear()
            stdscr.addstr(“mcd\\n\\n”)
        elif opt == “salir” or opt == “0″:
            curses.endwin()
            sys.exit()
        else:
            stdscr.clear()
            stdscr.addstr(“error-menu\\n\\n”)
            curses.flash()
except:
    curses.endwin()
    sys.exit()

archivo: primos.py

# -*- coding: utf-8 -*-
import sys
import curses

def primo():
    try:
        stdscr = curses.initscr()
        stdscr.clear()
        stdscr.addstr(“=== Numeros primos ===\\n”)
        stdscr.addstr(“\\n introdusca un numero: “)
        numero = int(stdscr.getstr())
        nprimo = True
        for i in range(2,numero):
            if numero % i == 0:
                nprimo = False
                break
        if nprimo:
            stdscr.addstr(“\\nes número primo\\n\\n”)
        else:
            stdscr.addstr(“\\nNO es número primo\\n\\n”)
    except:
        stdscr.addstr(“\\nerror-primo\\n\\n”)
        curses.flash()

nota:
para pasar el código de python a html utilice Source-highlight
http://www.gnu.org/software/src-highlite/

acá esta el código fuente para bajar y probar, bajo licencia GPL :P
descargar: pymats.tar

One Comment

  1. Posted 16 Julio 2007 at 1:19 am | Permalink

    En lugar de PyGtk mira simplegladeapp está bastante bueno para hacer aplicaciones de forma rápida :-) siguien el modelo MVC.

    http://kefir.sourceforge.net/tepache/
    http://kefir.sourceforge.net/tepache/SimpleGladeAppReference.html
    http://www.gnomefiles.org/app.php/SimpleGladeApp.py
    En la liga de gnomefiles ese paquete viene con ejemplos.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*