Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Python3] Módulo PyConio - Dar color a la consola de forma fácil!
#1
Thumbs Up 
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:
Código:
  1. pip3 install pyconio
en modo administrador o sudo, dependiendo de tu sistema operativo.

Funciones
Colorear texto (paleta de 4 Bits, 16 colores):
[Imagen: pyconio_colorswin.png]
[Imagen: pyconio_ubuntu.png]

Código:
  1. from pyconio import *
  2. textcolor(Red)
  3. print("El texto esta en rojo!")
  4. textbackground(Green) # Color de texto se mantiene
  5. print("Esto es un texto con fondo verde!")
  6.  
  7. textcolor(Red)
  8. textbackground(Green)
  9. print("spam")
  10. reversevideo()
  11. # Ahora el color de texto es verde y fondo es rojo
  12. normvideo()
  13. # 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)
Código:
  1. from pyconio import *
  2.  
  3. textcolor(69, 8)
  4. print("Aquí")
  5. textcolor(34, 8)
  6. print("usando")
  7. textcolor(208, 8)
  8. print("la")
  9. textcolor(196, 8)
  10. print("paleta")
  11. textcolor(226, 8)
  12. print("de")
  13. textcolor(87, 8)
  14. print("256 colores!")
    

[Imagen: pyconio_256.png]
Puedes encontrar más info aquí.

Coloreando texto (24 Bits paleta True RGB, 16,777,216 colores)
Código:
  1. from pyconio import *
  2. import colorsys as clsy
  3.     
  4. for i in range(256):
  5.     color = clsy.hsv_to_rgb(i / 255, 1, 1)
  6.     color = int(color[0] * 255), int(color[1] * 255), int(color[2] * 255)
  7.     rgb_backgroundcolor(color[0], color[1], color[2]) # R, G, B
  8.  
  9. print()
  10. 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:
Código:
  1. from pyconio import *
  2. gotoxy(5, 5)
  3. print("El cursor está ahora en x:5 and y:5")


Leer teclado:
Código:
  1. from pyconio import *
  2. c = getch()
  3. 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:
Código:
  1. from pyconio import *
  2. title("eggs")

Pausar la ejecución del programa:
Código:
  1. from pyconio import *
  2. pause()
  3. pause("Programa pausado ")


Escondiendo y mostrado el cursor:
Código:
  1. from pyconio import *
  2. hidecur() # El cursor está oculto
  3. showcur() # Ahora el cursor no lo está

Limpiar la pantalla:
Código:
  1. from pyconio import *
  2. clrscr()

Obtener el tamaño de la consola:
Código:
  1. from pyconio import *
  2. a = gettermsz()
Retorna: tupla con tamaño X & Y de la consola.

Ejemplos
Un (muy) simple juego hecho usando PyConio.
[Imagen: 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 cosas relevantes que usen 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á, 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.

Saludos! Smile
-konn
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)