Tengo un script de Python que necesita ejecutar un programa externo, pero por alguna razón falla.¿Cómo ejecuto un programa desde Python? os.system falla debido a espacios en la ruta
Si tengo el siguiente script:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
Entonces se produce un error con el siguiente error:
'C:\Temp\a' is not recognized as an internal or external command, operable program or batch file.
Si me escape el programa con citas:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
Entonces trabajos. Sin embargo, si añado un parámetro, deja de funcionar de nuevo:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
¿Cuál es la manera correcta de ejecutar un programa y esperar a que se complete? No necesito leer el resultado, ya que es un programa visual que hace un trabajo y luego simplemente sale, pero tengo que esperar a que se complete.
También tenga en cuenta que mover el programa a una ruta no espaciada tampoco es una opción.
Esto no funciona bien:
import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
nota las comillas dobles/individuales intercambiadas.
Con o sin un parámetro a la agenda aquí, se produce un error con el mensaje de error
The filename, directory name, or volume label syntax is incorrect.
Uso esto: 'OS. sistema (r'C: \ temp \ "abc" \ Notepad.exe ') ' o este:' os.system (' C: \\ temp \\ 'abc' \\ Notepad.exe ') ' – chanzerre