Petits exemples de code Python

De knowledge
Version datée du 25 septembre 2025 à 08:40 par Jpinon (discussion | contributions) (Page créée avec « == Script pour éviter le delog automatique et afficher l'heure == Souvent les connexions à la console ssh ont un time-out d'inactivité très (trop) court. Voici un petit programme python qui affiche l'heure au centre de l'écran et attends l'appuy sur une touche.<syntaxhighlight lang="python3"> #!/bin/python3 import time import sys import select import termios import tty import shutil # Obtenir la taille du terminal size = shutil.get_terminal_size() cols =... »)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Script pour éviter le delog automatique et afficher l'heure

Souvent les connexions à la console ssh ont un time-out d'inactivité très (trop) court.

Voici un petit programme python qui affiche l'heure au centre de l'écran et attends l'appuy sur une touche.

#!/bin/python3
import time
import sys
import select
import termios
import tty
import shutil


# Obtenir la taille du terminal
size = shutil.get_terminal_size()
cols = size.columns
rows = size.lines

# FORMAT
date_format="\u25C0 %Y-%m-%d %H:%M:%S \u25B6";
# Calcul de la chaine
ssize=len(time.strftime(date_format))

# Calculer la position centrale
center_x = (cols // 2)-(ssize//2)
center_y = rows // 2

# Sauvegarder les paramètres du terminal
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
tty.setcbreak(fd)  # Mode caractère par caractère
print ("Sleep mode. Type any key to resume...")
print ("\033[?25l\033[s",end="") # on desactive l'affichage du "carret" du curseur et on sauve sa position
try:
    print ("\033[?25l\033[s",end="")
    while True:
        if select.select([sys.stdin], [], [], 0)[0]: # Si une touche est pressée
            break # on sort du 'while'
        print(f"\033[{center_y};{center_x}H", end="")
        now = time.time()
        ts=time.localtime(now)
        f=time.strftime("\033[103m\033[31m"+date_format+"\033[0m",ts)
        print (f,end="",flush=True)
        time.sleep(0.1)
finally:
    termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)  # Restaurer terminal
    print(f"\033[{center_y};{center_x}H"+" "*ssize, end="") # On se positionne au centre

    print("\033[u\033[?25h", end="")  # Restaurer position curseur et on affiche le carret
    print("Sleep mode terminated")

Le script s'autoexplique. On utilise le module time el des codes ansi.