Programación Web y Scripting > Python
Duda Ejecutar Comandos Del So Con Python
Ithimn:
Hola a todos, soy nuevo por aquí. Mi problema está en que estoy haciendo una aplicación con Python en linux y en un punto de la aplicación intento ejecutar comandos del sistema operativo. Este comando en concreto acaba creando un archivo y me da el siguiente error:
ValueError : I/O operation on closed file
El trozo de código es este:
proc=subprocess.Popen(comando, shell=True, stdin=subprocess.PIPE)
proc.communicate('contrasena')
proc.communicate('contrasena')
, el comando no crea el archivo hasta que se le pasa la contraseña y se le confirma. Espero que alguien me pueda echar una mano y ver como puedo hacer que no me de el error al crear el archivo.
Un saludo a todos y gracias :hola:
RadicalEd:
No entiendo muy bien, pero yo haría algo así:
--- Código: Text ---passwd = raw_input('Favor introducir password: ') if passwd == 'tupassword': archivo = open('test.log', 'w') archivo.write('info a guardar') archivo.close() Una pregunta???, por qué vas a crear archivo a través de comando del sistema?, con la función open lo puedes hacer.
Ithimn:
Te explico, la aplicación no es de consola, es gráfica. La estoy haciendo con wxPython :comp: . En realidad es un frontend y con este frontend ejecuto comandos del sistema operativo. En un punto el comando introducido te pide contraseña el sistema operativo para encriptar un archivo que la ha puesto previamente el usuario desde la interfaz grafica en un cuadro de texto, con lo cual se la paso con "communicate", y una vez que le pasas esa contraseña el comando debe generar un archivo (es para lo que sirve el comando que utilizo no es que yo haya creado un archivo previamente). Entonces es cuando me da el error de I/O operation on closed file. No se si es que tengo que crear un archivo vacio antes o que hay que hacer exactamente. Si se os ocurre alguna cosa... estoy un poquillo desesperado con esto jeje. Muchas gracias RadicalEd, intentaré a lo mejor hacer un open('archivo','w') antes de ejecutar el comando del sistema a ver que pasa
:alien:
RadicalEd:
Lo que entiendo es que estás tratando de escribir o leer sobre un archivo cerrado.
Leete esto y entenderas.
Puedes mostrar todo el código para probar???
Ithimn:
Siento no haber podido postear antes pero he estado muy liado. Creo que no me he explicado bien. Lo que estoy haciendo es un front-end para openssl. Entonces cuando envio el comando openssl a la linea de comandos pide una key para la encriptación/desencriptación y generaría si funcionase bien un archivo encriptado pero me da el error I/O on closed file (cosa normal pq ese archivo no ha sido creado antes). Voy a adjuntar lo que llevo hecho para que veas a lo que me refiero. El programa ahora mismo está un poquito provisional y estoy empezando con python asi que a lo mejor veis alguna cosa rara jejjeje :lol: Venga un saludo.
Navegación
[#] Página Siguiente
Ir a la versión completa