3 febbraio 2009

PYTHON Modulo Subprocess

Il modulo Subprocess ha fatto la sua comparsa nella versione 2.4 di Python.
Con il modulo Subprocess, si è reso molto più facile, interfacciare Python con processi di
sistema, quali la shell, l'input e l'output, chiamate a processi di sistema, e a una serie
di utility sia per sistemi di tipo Unix, che Windows, che con i "classici" os.popen, os.popen2,
os.system, os.exec, ecc, del modulo OS.

Esempio os.system:

import os
mioSistema = os.system('dir')
mioSistema

Esempio subprocess:

def main():
vers = "du"
vera = "-h"
dir_path = "/home"
print "Verifica spazio occupato nella mia home"
subprocess.call([vers, vera, dir_path])

main()


Questo invece è l'utilizzo reale del modulo subprocess al lavoro, che ci stampa a video la versione del kernel Linux in uso sul sistema, il comando w, e l'utility pstree.

Esempio:

import subprocess

def System():
""" La classica chiamata Linux uname
per visualizzare il nome del sistema in uso
con il flag -a attivato. """
sysInfo = " uname "
sysOpz = " -a "
print " Sistema %s:\n" % sysInfo
subprocess.call([sysInfo, sysOpz])

def Who():
""" Il comando w che ci indica chi
e loggato nel sistema. """
wh = " w "
print " Login User %s:\n" % wh
subprocess.call([ wh ])

def Systree():
""" Il comando pstree, che ci elenca a video
i processi di sistema, avviati con i relativi
sotto processi, che ci permette di vederli in
un formato ad albero, ma con un output molto
più esteso per via del flag -a attivato """
pte = " pstree "
pteOpz = " -a "
print " Processi %s:\n" % pte
subprocess.call([pte, pteOpz])

System()
Who()
Systree()

Nessun commento: