从python打开windows照片库

时间:2013-07-08 13:30:31

标签: python windows

我希望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.

如何对这个进行排序?

3 个答案:

答案 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:\ProgramFiles(x86)\WindowsLive\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可以处理那里的空间。