Systeme::py

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Interaction avec le système
Modules sys, os, signal, getopt
Voir aussi Reseau::py · Time::py

Systeme::py rassemble les briques d'interaction avec le système d'exploitation : flux standard (sys.stdin/stdout/stderr), gestion des signaux, arguments de ligne de commande et exécution de commandes externes.

Flux standard

import sys
sys.stdin
sys.stdout
sys.stderr

sys.stdout.write("un test\n")

Rediriger la sortie standard vers un fichier :

fichier = open('sortie.txt', 'w')
sys.stdout = fichier
print("quelque chose")

Signaux

import signal
import sys

def fermer_programme(signal, frame):
    print("c'est l'heure de la fermeture")
    sys.exit(0)

signal.signal(signal.SIGINT, fermer_programme)

print("Le programme va boucler...")
while True:
    continue

Arguments de ligne de commande

import sys

if len(sys.argv) < 2:
    print("précisez un paramètre en entrée")
    sys.exit(1)

action = sys.argv[1]

if action == "start":
    print("On démarre l'opération")
elif action == "stop":
    print("On stoppe l'opération")
elif action == "restart":
    print("On redémarre l'opération")
elif action == "status":
    print("On affiche l'état de l'opération")
else:
    print("Je ne connais pas l'opération")

Pour une gestion avancée des options (courtes/longues, ordre) :

import getopt

Exécution de commandes

import os
os.getcwd()

os.system("ls")
os.system("dir")

cmd = os.popen("ls")
cmd

Voir aussi