Tôi có một tập lệnh Python cần thực thi một chương trình bên ngoài, nhưng vì một số lý do không thành công.
Nếu tôi có đoạn script sau:
import os;
os.system("C:\\Temp\\a b c\\Notepad.exe");
raw_input();
Sau đó, nó không thành công với lỗi sau:
'C: \ Temp \ a' không được nhận dạng dưới dạng lệnh bên trong hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó.
Nếu tôi thoát khỏi chương trình với dấu ngoặc kép:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe"');
raw_input();
Sau đó, nó hoạt động. Tuy nhiên, nếu tôi thêm một tham số, nó sẽ ngừng hoạt động trở lại:
import os;
os.system('"C:\\Temp\\a b c\\Notepad.exe" "C:\\test.txt"');
raw_input();
Cách đúng đắn để thực hiện một chương trình và chờ đợi nó hoàn thành là gì? Tôi không cần phải đọc đầu ra từ nó, vì đây là một chương trình trực quan thực hiện công việc và sau đó chỉ thoát, nhưng tôi cần đợi nó hoàn thành.
Cũng lưu ý, di chuyển chương trình đến một đường dẫn không có khoảng cách cũng không phải là một lựa chọn.
Điều này cũng không hoạt động:
import os;
os.system("'C:\\Temp\\a b c\\Notepad.exe'");
raw_input();
Lưu ý các dấu ngoặc đơn / đôi được hoán đổi.
Có hoặc không có tham số cho Notepad ở đây, nó không thành công với thông báo lỗi
Tên tệp, tên thư mục hoặc cú pháp nhãn âm lượng không chính xác.
"C:\Program Files\GDAL\gdal_translate.exe" -ot byte -of GTIFF -scale -co PHOTOMETRIC=CMYK "cmyk-16.tif" "cmyk-8_out.tif"
. Trong Python, nó trở thành : ["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')
hoặc cái này:os.system('C:\\temp\\"a b c"\\Notepad.exe')