У мене є сценарій Python, який повинен виконувати зовнішню програму, але чомусь не працює.
Якщо у мене є такий сценарій:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
Тоді вона не працює із наступною помилкою:
'C: \ Temp \ a' не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл.
Якщо я уникаю програми з цитатами:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
Тоді це працює. Однак якщо я додаю параметр, він знову працює:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
Який правильний спосіб виконати програму та дочекатися її завершення? Мені не потрібно читати вихід з нього, оскільки це візуальна програма, яка виконує роботу, а потім просто виходить, але мені потрібно дочекатися її завершення.
Також зауважте, переміщення програми на нерозділений шлях також не є варіантом.
Це також не працює:
import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
Зверніть увагу на замінені одинарні / подвійні лапки.
З цим параметром для Блокнота або без нього він не вдається отримати повідомлення про помилку
Ім'я файлу, ім'я каталогу або синтаксис мітки тома невірно.
"C:\Program Files\GDAL\gdal_translate.exe" -ot byte -of GTIFF -scale -co PHOTOMETRIC=CMYK "cmyk-16.tif" "cmyk-8_out.tif"
. В Python, це буде виглядати так : ["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')
або це:os.system('C:\\temp\\"a b c"\\Notepad.exe')