我有一个需要执行外部程序的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')