Programación Web y Scripting > Python
Duda Ejecutar Comandos Del So Con Python
RadicalEd:
Una pre???
En qué SO estás tratando de ejecutar este script???
Tienes instalado el openssl???
Ithimn:
Utilizo Ubuntu 7.10. openssl si lo tengo instalado y funciona correctamente, lo he probado a hacer desde linea de comandos y encripta ok. Desde la aplicación que estoy programando tb ejecuta bien el comando, el error es que no genera el archivo encriptado por el error ese que comentaba que me ocurria, no se si es por algun problema con python y derechos para crear archivos desde este o si hay alguna forma de hacer lo que quiero.
RadicalEd:
Por qué preguntas acá si el archivo == cerrado entonces ejecute el subprocess.Popen si lo estás abriendo una línea arriba:
--- Código: Text --- f=open((destino + "archivo.enc"),'wb') # Pasamos el comando como una lista if f.closed==False: #proc=subprocess.Popen(comando, shell=True, stdin=subprocess.PIPE,stdout=f) proc=subprocess.Popen(comando, shell=True, stdin=subprocess.PIPE, stdout=f) # Le paso de prueba una contrasena --> contrasena # AQUI ES DONDE SE PRODUCE EL ERROR proc.communicate('contrasena\n') proc.communicate('contrasena\n') Como está abierto yo le dije if f.closed!=False: ejecute el resto y me creo el archivo.enc, pero como no tengo openssl en un XP 'tons me crea un archivo a 0 bytes, no sé si sea por ahí, ojala NRM pueda ayudar un poquito más.
Ithimn:
Como me daba el error de que estaba ejecutando una operacion de I/O sobre un archivo cerrado pues probé a hacer un open para crear asi primero el archivo y tenerlo abierto pero me sigue dando igual. Con el subprocess.Popen lo que hace es pasar el comando a la linea de comandos no es que vuelva a abrir el archivo ni nada de eso. Luego el communicate es para pasarle la key de encriptación cuando la pide y la confirmación. A mi tb me crea el archivo de 0 bytes pero el error me da luego cuando intenta generar el archivo encriptado. Desde XP no podrás comprobarlo. Gracias de todos modos.
RadicalEd:
Una pre???, aunque leyendo ahora un poco me dí cuenta que el subprocess tiene un poquito más de poder; por qué no usas os.system() y tratas de ejecutar la variable comando para ver que pasa???
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa