Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2011, 13:16
Avatar de wilmermorel
wilmermorel
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 30
Antigüedad: 13 años, 4 meses
Puntos: 2
Pregunta Operaciones por consola desde una interfaz grafica en python

Tengo un problemita que ni siquiera se que titulo poner en esta entrada, resulta ser que hice una pequeña aplicación gráfica con wxPython la cual ejecuta comandos por consola con el modulo os, pero necesito que todas las entradas se hagan por interfaz grafica.... me explico mejor:
Al intentar realizar una operación como superusuario, hago esto: os.system('sudo '+comando) pero lógicamente me pide la entrada de contraseña, por consola... estoy totalmente perdido en este asunto que no se ni como explicarlo, pero se que tiene solución.

El sigte. código, elimina el directorio previamente seleccionado mediante un DirDialog.
Lo que necesito es, ingresar la contraseña desde un TextEntryDialog e incluirla junto al comando o algo parecido en siendo que todo funcione correctamente.

Código Python:
Ver original
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import wx
  5. import os
  6.  
  7. class MyFrame(wx.Frame):
  8.     def __init__(self):
  9.         wx.Frame.__init__(self, None, -1, "Ventana")
  10.         self.button_1 = wx.Button(self, -1, "Abrir")
  11.  
  12.         self.__Prop()
  13.         self.__Layout()
  14.         self.Bind(wx.EVT_BUTTON, self.Abrir, self.button_1)
  15.  
  16.     def __Prop(self):
  17.         self.SetTitle("Temas by Wilmer")
  18.  
  19.     def __Layout(self):
  20.         sizer1 = wx.BoxSizer(wx.VERTICAL)
  21.         sizer1.Add(self.button_1, 0, wx.ALL, 10)
  22.         self.SetSizer(sizer1)
  23.  
  24.     def Abrir(self, event):
  25.         dialogo = wx.DirDialog(self)
  26.         a = dialogo.ShowModal()
  27.         if a == wx.ID_OK:
  28.             ruta = dialogo.GetPath()
  29.             os.system('sudo rm -r '+ruta) #EL PROBLEMA ES ESTE
  30.             print("carpeta eliminada")
  31.  
  32.         event.Skip()
  33.  
  34. if __name__ == '__main__':
  35.     app = wx.PySimpleApp(0)
  36.     wx.InitAllImageHandlers()
  37.     frame = MyFrame()
  38.     app.SetTopWindow(frame)
  39.     frame.Show()
  40.     app.MainLoop()

Que me pidan cambiar el titulo a esta entrada, no estaría nada mal

Última edición por razpeitia; 23/10/2011 a las 15:35