PyConio (Python console I/O) es un módulo que provee funciones útiles para trabajar con la I/O de la consola.
Todas las funciones de PyConio tienen el similar comportamiento que conio.h.
Y lo mejor es que es Cross Platform. (osea que funciona en todas las plataformas)
Este módulo esta bajo la licencia GNU GPL v2.
Instalación
Simplemente ejecuta esto:
pip3 install pyconio
en modo administrador o sudo, dependiendo de tu sistema operativo.
Funciones
Colorear texto (paleta de 4 Bits, 16 colores):
(https://raw.githubusercontent.com/konniskatt/konniskatt.github.io/master/pyconio_colorswin.png)
(https://raw.githubusercontent.com/konniskatt/konniskatt.github.io/master/pyconio_ubuntu.png)
from pyconio import *
textcolor(Red)
print("El texto esta en rojo!")
textbackground(Green) # Color de texto se mantiene
print("Esto es un texto con fondo verde!")
textcolor(Red)
textbackground(Green)
print("spam")
reversevideo()
# Ahora el color de texto es verde y fondo es rojo
normvideo()
# Reinicia la consola a sus configuraciones por defecto
Lista de colores de la paleta de 4 Bits:
Black, Blue, Green, Red, Yellow, Cyan, Magenta, White, Gray, LightRed, LightGreen, LightBlue, LightWhite, LightYellow, LightCyan y LightMagenta.
Coloreando texto (paleta extendida de 8 Bits, 256 colores)
from pyconio import *
textcolor(69, 8)
print("Here")
textcolor(34, 8)
print("using")
textcolor(208, 8)
print("the")
textcolor(196, 8)
print("256")
textcolor(226, 8)
print("color")
textcolor(87, 8)
print("palette!")
(https://raw.githubusercontent.com/konniskatt/konniskatt.github.io/master/pyconio_256.png)
Puedes encontrar más info aquí. (https://es.wikipedia.org/wiki/C%C3%B3digo_escape_ANSI)
Coloreando texto (24 Bits paleta True RGB, 16,777,216 colores)
from pyconio import *
import colorsys as clsy
for i in range(256):
color = clsy.hsv_to_rgb(i / 255, 1, 1)
color = int(color[0] * 255), int(color[1] * 255), int(color[2] * 255)
rgb_backgroundcolor(color[0], color[1], color[2]) # R, G, B
print()
pause()
La paleta de 8 Bits y RGB sólo están disponibles para sistemas POSIX (GNU/Linux, GNU Hurd, MacOSX, Android, etc) y sólo para Windows 10 TH2 en adelante.
Nota: Cuando el programa termina, se reinicia los colores automátcamente
Controlando la posición del cursor:
from pyconio import *
gotoxy(5, 5)
print("El cursor está ahora en x:5 and y:5")
Leer teclado:
from pyconio import *
c = getch()
print("Presionaste: %s" % c)
getch():
Lee una tecla del teclado sin esperar que el usuario presione enter y retorna la tecla.
getche():
Al igual que getch(), pero imprime la tecla presionada.
getchar():
Lee una letra del teclado, pero espera hasta que el usuario presione enter.
kbhit():
Detecta si una tecla ha sido presionada.
Colocando título a la consola:
from pyconio import *
title("eggs")
Pausar la ejecución del programa:
from pyconio import *
pause()
pause("Programa pausado ")
Escondiendo y mostrado el cursor:
from pyconio import *
hidecur() # El cursor está oculto
showcur() # Ahora el cursor no lo está
Limpiar la pantalla:
from pyconio import *
clrscr()
Obtener el tamaño de la consola:
from pyconio import *
a = gettermsz()
Retorna: tupla con tamaño X & Y de la consola.
Ejemplos
Un (muy) simple juego hecho usando PyConio.
(https://raw.githubusercontent.com/konniskatt/konniskatt.github.io/master/pyconio_demo.png)
PD: el código de este "juego" está en la misma repo (pyconio/demo/Walk.py), y viene incluido con el módulo.
Si quieren pueden enviarme por MP lo que hagan con este módulo, y lo pondré aquí.
Compatibilidad
Este módulo ha sido probado en Windows (10), en GNU/Linux (Ubuntu, Debian y Ubuntu WSL) y en Android usando Pydroid 3.
Cualquier problema o sugerencia, comuníquenla atravez de un MP.
La repo está acá (https://gitlab.com/konniskatt/pyconio), en caso de que quieran contribuir, o si tienen un problema, aunque preferiblemente si el problema será escrito en español, mejor escríbanme un MP como dije anteriormente.
Espero que mi aporte les sea útil.
Saludos! :)