Saya memiliki skrip Python yang perlu menjalankan program eksternal, tetapi karena beberapa alasan gagal.
Jika saya memiliki skrip berikut:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
Kemudian gagal dengan kesalahan berikut:
'C: \ Temp \ a' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan, atau file batch.
Jika saya keluar dari program dengan kutipan:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
Lalu berhasil. Namun, jika saya menambahkan parameter, itu berhenti berfungsi lagi:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
Apa cara yang tepat untuk menjalankan program dan menunggu sampai selesai? Saya tidak perlu membaca output dari itu, karena ini adalah program visual yang melakukan pekerjaan dan kemudian hanya keluar, tetapi saya harus menunggu sampai selesai.
Perhatikan juga, memindahkan program ke jalur non-spasi juga bukan pilihan.
Ini juga tidak bekerja:
import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
Perhatikan tanda kutip tunggal / ganda bertukar.
Dengan atau tanpa parameter ke Notepad di sini, gagal dengan pesan kesalahan
Nama file, nama direktori, atau sintaks label volume tidak benar.
"C:\Program Files\GDAL\gdal_translate.exe" -ot byte -of GTIFF -scale -co PHOTOMETRIC=CMYK "cmyk-16.tif" "cmyk-8_out.tif"
. Dalam Python, menjadi: ["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')
atau ini:os.system('C:\\temp\\"a b c"\\Notepad.exe')