ฉันมีสคริปต์ 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();
หมายเหตุการสลับคำพูดเดี่ยว / คู่
มีหรือไม่มีพารามิเตอร์เพื่อ Notepad ที่นี่มันล้มเหลวพร้อมกับข้อความแสดงข้อผิดพลาด
ชื่อไฟล์ชื่อไดเรกทอรีหรือไวยากรณ์ฉลากปริมาณไม่ถูกต้อง
"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')