domingo, 15 de febrero de 2015

Python: jugando con PyZenity (3era parte)

En esta ocasión seguimos usando la librería PyZenity. Ahora crearemos un sencillo menú con tres opciones:
  1. Información del sistema
  2. Espacio en los discos duros
  3. Ver directorio
Importaremos estas librerías:
  • os
  • platform
  • commands
  • PyZenity
Nos servirán para ejecutar comandos, obtener plataforma que se ocupa (en este caso se usa Linux), almacenar el resultado de comandos y para los componentes gráficos respectivamente.

Como va ser un script para sistemas Linux hacemos una función que identifique si se trata de un sistema con plataforma Linux:

def identifica():
  return platform.system() == 'Linux'


Para ejecutar un comando (sin necesidad de almacenar el resultado) usamos este método:

os.system('clear')#este comando limpia la pantalla

Ahora si queremos guardar el resultado de un comando usaremos esto:
status, output = commands.getstatusoutput("ls -l")

Para introducir datos de entrada:
entrada=GetText(contenido)

Para mostrar resultados:
InfoMessage('Mensaje')

El código completo:
import os,platform,commands
from PyZenity import *

def identifica():
  return platform.system() == 'Linux'

def menu():
  contenido="\tMenu\n1. Opcion 1[Informacion del sistema]\n2. Opcion 2[Espacio en los discos duros]\n3. Opcion 3[Ver el directorio]\nElije tu opcion (q para salir):"
  while True:
    entrada=GetText(contenido)
    try:
      numero=int(entrada)
      if numero == 1:
        status, output = commands.getstatusoutput("uname -a")
        InfoMessage(str(output))
      elif numero == 2:
        status, output = commands.getstatusoutput("df")
        InfoMessage(str(output))
      elif numero == 3:
        status, output = commands.getstatusoutput("ls -l")
        InfoMessage(str(output))
      else:
        ErrorMessage('Opcion incorrecta.\nIntenta de nuevo')
    except:
      if entrada == 'q':
        break
      Warning('Por favor solo numeros')


def main():
  if identifica():
    os.system('clear')
    try:
      menu()
    except ImportError:
      print "Debes tener instalada la libreria PyZenity"

  else:
    print "Este script solo funciona en plataformas Linux"

if __name__ == '__main__':
  main()



No hay comentarios:

Publicar un comentario