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#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx
import os
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "Ventana")
self.button_1 = wx.Button(self, -1, "Abrir")
self.__Prop()
self.__Layout()
self.Bind(wx.EVT_BUTTON, self.Abrir, self.button_1)
def __Prop(self):
self.SetTitle("Temas by Wilmer")
def __Layout(self):
sizer1 = wx.BoxSizer(wx.VERTICAL)
sizer1.Add(self.button_1, 0, wx.ALL, 10)
self.SetSizer(sizer1)
def Abrir(self, event):
dialogo = wx.DirDialog(self)
a = dialogo.ShowModal()
if a == wx.ID_OK:
ruta = dialogo.GetPath()
os.system('sudo rm -r '+ruta) #EL PROBLEMA ES ESTE
print("carpeta eliminada")
event.Skip()
if __name__ == '__main__':
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame = MyFrame()
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
Que me pidan cambiar el titulo a esta entrada, no estaría nada mal