getstatusoutput

Arnau Sanchez arnau en ehas.org
Lun Oct 2 02:03:18 CEST 2006


Marcos Sánchez Provencio escribió:
> para que las \ se interpreten tal cual, hay que usar cadenas en bruto:
> http://pyspanishdoc.sourceforge.net/tut/node5.html#SECTION005120000000000000000 
> 
> 
> o sea, poner
> 
> status,output = commands.getstatusoutput(r"\Windows\camera.exe")
> 
> 
> Fredy Cabre escribió:
>> Ya lo he arreglado, lo he compilado desde mi pc con el pyhton 2.4 y los
>> .pyc arrancan bien en el ppc. El problema es que con el codigo que he 
>> puesto me lanza un error de
>> excepción.  
>>     imports commands
>>     status,output = commands.getstatusoutput("\Windows\camera.exe")
>>  
>>  
>>  
>> he probando añadiendo un parámetro despues de la llamada al programa
>> pero tambien me da error:
>>     status,output = commands.getstatusoutput("\Windows\camera.exe foto")
>>  

Además de lo que te dicen de escapar las '\' con '\\', estás usando el módulo 
"commands", que según la documentación sólo está soportado en sistemas UNIX 
(aunque no puedo descartar que funcione en Win32, vete a saber). En cualquier 
caso, a partir de la versión 2.4 se recomienda usar subprocess:

http://docs.python.org/lib/module-subprocess.html

Como no creo que uses la salida del comando (¿o sí? en windows me extrañaría 
mucho), tienes la función "call", que sólo te devuelve el returncode:

http://docs.python.org/lib/node530.html

En cuanto al path de camera.exe, das por supuesto que está en la unidad actual. 
¿no sería mejor poner el path completo u obtener antes el directorio base de 
windows (ni idea de cómo se hace, pero seguro que se puede)?

Y por último, si sigue fallando, envía el mensaje de error completo. Sólo dices 
que te salió "un error de excepción" :-), pero no lo incluyes en tu mensaje, así 
que sólo podemos especular.

arnau




Más información sobre la lista de distribución Python-es