正如 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
,所以这很糟糕。
如果出于某种原因,您真的很想使用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
希望这可以帮助