Como hacer esto

Ernesto Nadir Crespo Avila ecrespo en uc.edu.ve
Lun Abr 16 03:27:39 CEST 2001


El Sáb 14 Abr 2001 15:29, Pedro Floro escribió:
> Buenas,
>
Yo usaria el modulo commands con el subprograma getstatusoutput; el mismo 
genera una lista la cual el primer elemento es un valor cero si todo esta 
bien y diferente de cero si hay un error; el siguiente elemento de la lista 
es la salida del comando.

> Me gustaria hacer una cosa de Unix, una cosa sencilla, por ejemplo hacer
> un 'finger' a un determinado usuario. Eso lo quiero hacer dentro de un
> programa. Primero se miraria el usuario que esta ejecutando el programa en
>
> ese instante, se podria poner asi:
> >>> usuario=popen('whoami')

Lo haría así:
usuario = commands.getstatusoutput('whoami')
Imprimiendo usuario, muestra:
(0, 'ecrespo')
>
> Con eso tendriamos el usuario. Entonces a mi me gustaria usar esa variable
> para varias cosas. Por ejemplo, para hacer un 'finger' al usuario, pero no
>
> se puede hacer esto:
> >>> datos=system('finger -p',usuario)
datos = commands.getstatusoutput('finger -p %s ' %usuario[1])
Imprimiendo datos[1], muestra:
'Login: ecrespo        \011\011\011Name: Ernesto Nadir Crespo 
Avila\012Directory: /home/ecrespo
        \011Shell: /bin/bash\012On since Sun Apr 15 16:20 (VET) on :0 
(messages off)\012No mail.'


Tomas la información que te interesa de este string. Puedes quitar los 
espacios en blanco y los \012 y tendras otra lista, la cual es más facil de 
manejar, o puedes ubicar la información que necesitas con string.find.

> Me gustaria poder usar la variable ahi dentro, o a lo mejor hay otra
> funcion que lo permite.
>
> En otra ocasion tambien, como mirar los procesos que esta realizando el
>
> determinado usuario, por ejemplo, algo asi:
> >>> procesos=system('w',usuario)

 procesos = commands.getstatusoutput('ps -aux | grep %s' %usuario[1])

Te genera una lista, el segundo elemento de la lista procesos[1] es un string 
el cual contiene todos los procesos ejecutados por ese usuario
	Saludos, Ernesto Crespo





Más información sobre la lista de distribución Python-es