Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/10/2011, 22:48
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Caracteres especiales en python

Eso pasa por que ruta ya es unicode, supongo que el linux dlg.GetPath() regresa una cadena unicode, pero en windows no.

Ahora después de buscar un poco me doy cuenta que os.system no acepta cadenas unicode.

Quedando algo mas o menos así
Código Python:
Ver original
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import wx
  5.  
  6. def main():
  7.     dlg = wx.FileDialog(None)
  8.     a = dlg.ShowModal()
  9.     if a == wx.ID_OK:
  10.         ruta = dlg.GetPath()
  11.         if not isinstance(ruta, unicode):
  12.             try:
  13.                 ruta = unicode(ruta, "utf-8")
  14.             except UnicodeDecodeError:
  15.                 pass
  16.         ruta = ruta.encode("utf-8")
  17.         confirmar = raw_input("Procede a eliminar el archvivo "+ruta+"\nDesea eliminarlo? s/n ")
  18.         if confirmar.lower() == "s":
  19.             os.system("shred -u -v "+ruta)
  20.             print("Archivo eliminado")
  21.         else:
  22.             print("Operación cancelada")
  23.  
  24. if __name__ == "__main__":
  25.     app = wx.PySimpleApp(0)
  26.     wx.InitAllImageHandlers()
  27.     while True:
  28.         main()