尝试更改Mac桌面壁纸时出现"OSERROR -10000 Apple事件处理失败
我写了一个非常简单的Python脚本,用来更改我Mac电脑的桌面壁纸(这个脚本是参考了一个讨论帖)。
from appscript import app, mactypes
import sys
fileName = sys.argv[1:]
app('Finder').desktop_picture.set(mactypes.File(fileName))
但是当我运行这个脚本时,出现了以下错误信息:
追踪记录(最近的调用在最前面):
文件 "../Source/SetWallPaper2.py",第6行,
app('Finder').desktop_picture.set(mactypes.File(fileName))
文件 "/Library/Python/2.5/site-packages/appscript-0.19.0-py2.5-macosx-10.5-i386.egg/appscript/reference.py",第513行,在 call 中
appscript.reference.CommandError:
命令失败: OSERROR: -10000
消息:Apple事件处理失败。
命令:
app(u'/System/Library/CoreServices/Finder.app').desktop_picture.set(mactypes.File(u"/Users/Daniel/Pictures/['test.jpg']"))
我在网上查了一些资料,但找不到关于OSERROR -10000的意思或者如何解决这个问题的相关信息。
1 个回答
这段代码的意思是,fileName = sys.argv[1]
是在获取命令行输入的第一个参数,也就是你在运行程序时输入的第一个文件名。
而 fileName = sys.argv[1:]
则是获取从第二个参数开始的所有参数,这样就会把文件名当成一个列表来处理。
接下来这行 mactypes.File(u"/Users/Daniel/Pictures/['test.jpg']")
是在创建一个文件对象,路径是 /Users/Daniel/Pictures/
下的 test.jpg
文件。
注意到文件名周围有方括号和引号吗?这意味着文件名被当成了一个列表,而不是一个单独的字符串,这样可能会导致错误。