我希望python脚本的结束从python
打开Windows照片库我试试:
>>> os.system("C:\\Program Files (x86)\\Windows Live\\Photo Gallery\\WLXPhotoGal
lery.exe");
我明白了:
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
如何对这个进行排序?
答案 0 :(得分:4)
正如Martijn Pieters指出的那样,你真的应该使用subprocess
。但是,如果你真的好奇为什么你的电话不起作用,那是因为调用os.system("C:\\Program Files (x86)\\Windows Live\\Photo Gallery\\WLXPhotoGallery.exe");
等同于在命令行输入:C:\Program Files (x86)\Windows Live\Photo Gallery\WLXPhotoGallery.exe
。
查看文件路径中的那些空格? windows shell将每个以空格分隔的字符串视为单独的命令/参数。因此,它尝试使用参数C:\Program
,Files
,(x86)\Windows
,Live\Photo
执行程序Gallery\WLXPhotoGallery.exe
。当然,由于C:\Program
上的计算机上没有程序,所以这就是borks。
如果出于某种原因,你真的真的想和os.system
一起使用,你应该考虑如何在命令行上执行命令。要在命令行上执行此操作,您需要键入"C:\Program Files (x86)\Windows Live\Photo Gallery\WLXPhotoGallery.exe"
(引号转义空格)。要将此转换为os.system
来电,您应该这样做:
os.system('"C:\\Program Files (x86)\\Windows Live\\Photo Gallery\\WLXPhotoGallery.exe"');
但实际上,您应该使用subprocess
希望这有帮助
答案 1 :(得分:2)
请勿使用os.system()
。改为使用subprocess
module:
import subprocess
subprocess.call("C:\\Program Files (x86)\\Windows Live\\Photo Gallery\\WLXPhotoGallery.exe")
答案 2 :(得分:2)
您可能需要在字符串中嵌入双引号。我不是一个python家伙,但在C#中你需要你的字符串:“\”C:\\ Program Files(x86)\\ Windows Live \\ Photo Gallery \\ WLXPhotoGallery.exe \“”,所以Windows可以处理那里的空间。