venerdì 5 aprile 2024

Digitazione senza fare apparire nulla su schermo

 Per immettere password da linea di comando o comunque dati che non vogliamo fare visualizzare a video, questo è lo script di esempio scritto in python:


import termios

import sys

def getch():

  fd = sys.stdin.fileno()

  old_settings = termios.tcgetattr(fd)

  try:

    new_settings = termios.tcgetattr(fd)

    new_settings[3] &= ~termios.ICANON & ~termios.ECHO

    termios.tcsetattr(fd, termios.TCSANOW, new_settings)

    car = sys.stdin.read(1)

  finally:

    termios.tcsetattr(fd, termios.TCSANOW, old_settings)

  return car

stringa=""

while True:

  carattere = getch()

  if carattere == "\n":

    break

  else:

    stringa=stringa+carattere

print("Hai digitato:",stringa,end='')

domenica 25 febbraio 2024

Python Thread e animazione barretta di caricamento

Un programma in python che dimostra l'uso di Thread e l'animazione su prompt di una barretta che gira su se stessa.

import threading
import time

def animazione_barra(termina):
    while not termina.is_set():
        for char in '|/-\\':
            print('\r' + char, end='', flush=True)
            time.sleep(0.1)

def conteggio_numeri(termina):
    for i in range(1, 11):
        print(f'\r {i}', end='', flush=True)
        time.sleep(1)
    
    termina.set()

if __name__ == '__main__':
    termina_animazione = threading.Event()
    
    thread_animazione = threading.Thread(target=animazione_barra, args=(termina_animazione,))
    thread_conteggio = threading.Thread(target=conteggio_numeri, args=(termina_animazione,))
    
    thread_animazione.start()
    thread_conteggio.start()
    
    thread_animazione.join()
    thread_conteggio.join()