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#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import wx
def main():
dlg = wx.FileDialog(None)
a = dlg.ShowModal()
if a == wx.ID_OK:
ruta = dlg.GetPath()
if not isinstance(ruta, unicode):
try:
ruta = unicode(ruta, "utf-8")
except UnicodeDecodeError:
pass
ruta = ruta.encode("utf-8")
confirmar = raw_input("Procede a eliminar el archvivo "+ruta+"\nDesea eliminarlo? s/n ")
if confirmar.lower() == "s":
os.system("shred -u -v "+ruta)
print("Archivo eliminado")
else:
print("Operación cancelada")
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
while True:
main()