J'ai un script Python qui doit exécuter un programme externe, mais pour une raison quelconque, il échoue.
Si j'ai le script suivant:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
Ensuite, il échoue avec l'erreur suivante:
'C: \ Temp \ a' n'est pas reconnu comme une commande interne ou externe, un programme exploitable ou un fichier de commandes.
Si j'échappe au programme avec des guillemets:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
Alors ça marche. Cependant, si j'ajoute un paramètre, il cesse de fonctionner à nouveau:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
Quelle est la bonne façon d'exécuter un programme et d'attendre qu'il se termine? Je n'ai pas besoin de lire la sortie de celui-ci, car c'est un programme visuel qui fait un travail puis se termine, mais je dois attendre qu'il se termine.
Notez également que déplacer le programme vers un chemin non espacé n'est pas non plus une option.
Cela ne fonctionne pas non plus:
import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
Notez les guillemets simples / doubles échangés.
Avec ou sans paramètre dans le Bloc-notes ici, il échoue avec le message d'erreur
Le nom de fichier, le nom de répertoire ou la syntaxe d'étiquette de volume est incorrect.
"C:\Program Files\GDAL\gdal_translate.exe" -ot byte -of GTIFF -scale -co PHOTOMETRIC=CMYK "cmyk-16.tif" "cmyk-8_out.tif"
. En Python, il devient: ["C:\\Program Files\\GDAL\\gdal_translate.exe", "-ot", "byte", "-scale", "-co", "PHOTOMETRIC=CMYK", "input_cmyk-16.tif", "output_cmyk-8.tif"]
.
os.system(r'C:\temp\"a b c"\Notepad.exe')
ou ceci:os.system('C:\\temp\\"a b c"\\Notepad.exe')