2014-10-27 96 views
1

下面的代码,在Python 2.7,不工作:Python的OS模块错误

import os 

def dockSuck(): 
    os.system("echo Switching to suck effect.") 
    os.system("defaults write com.apple.dock mineffect suck") 
    os.system("killall dock") 

dockSuck() 

它打印出来Switching to suck effect.No matching processes belonging to you were found。它应该将最小化效果(在Mac上)切换到隐藏吸吮效果(然后将码头重置为killall),但它会返回错误。

+0

只是可以肯定,你可以手动输入这些命令和他们的工作预期? – wnnmaw 2014-10-27 16:30:23

回答

4

osx上的dock进程名为Dock - 注意大写。

$ ps -ef |grep dock -i 
    501 359  1 0 17Oct14 ??   0:57.16 /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock 
    501 423  1 0 17Oct14 ??   0:03.09 /System/Library/CoreServices/Dock.app/Contents/XPCServices/com.apple.dock.extra.xpc/Contents/MacOS/com.apple.dock.extra 
    501 2259 359 0 17Oct14 ??   0:37.98 /System/Library/CoreServices/Dock.app/Contents/Resources/DashboardClient.app/Contents/MacOS/DashboardClient 

修改您的killall语句os.system("killall Dock")

+1

,另外,为了确保所有进程都被终止,您可能需要发送'killall -kill Dock'。 – MattDMo 2014-10-27 16:32:05

+0

我会试试。 :) – 2014-10-27 16:32:59

+0

啊,是的,它的工作。我会在几分钟内让它接受。 =)感谢您的帮助! – 2014-10-27 16:34:15