import subprocess from tabulate import tabulate # Exécuter la commande docker ps et récupérer la sortie command = "docker ps -a --format 'table {{.Names}} \t {{.Status}} \t {{.Size}}'" output = subprocess.check_output(command, shell=True).decode().strip() # Convertir la sortie en liste de lignes lines = output.split("\n") # Récupérer les en-têtes de colonnes headers = lines[0].split("\t") # Récupérer les données des conteneurs data = [line.split("\t") for line in lines[1:]] # Générer le tableau avec le cadre table = tabulate(data, headers=headers, tablefmt="pipe") # Déterminer la largeur maximale pour le cadre max_width = max(len(line) for line in table.split("\n")) # Créer le cadre frame = f"╭{'─' * (max_width - 2)}╮\n" frame += f"│{'DOCKER STATUS':^{max_width-2}}│\n" frame += f"├{'─' * (max_width - 2)}┤\n" frame += table + "\n" frame += f"╰{'─' * (max_width - 2)}╯" # Afficher le cadre print(frame)