打开和使用Safari
我对Mac系统还比较陌生。我的问题是关于如何在Mac OSX上用Python打开一个应用程序。根据我目前找到的信息,应用程序是以.app格式存储的,实际上它们是一些文件夹。打开应用时,操作系统会以某种方式解析这些文件夹吗?我想用Python打开Safari,它在我的/Applications/Safari.app目录下。我应该把哪个具体的二进制文件传给os.system,还是说我应该用完全不同的方法?我的最终目标是让Safari打开一个本地的HTML文件,然后关闭它,再打开另一个本地的HTML文件。
谢谢,
-John
3 个回答
这个对我有效:
os.system("open /Applications/Safari.app http://www.google.com")
这段代码的意思是用系统命令打开Safari浏览器,并且直接访问谷歌网站。具体来说,`os.system("open -a /Applications/Safari.app http://www.google.com")` 这行代码是告诉电脑去打开Safari这个应用程序,然后去加载谷歌的网页。
另外,如果你的Safari浏览器不是默认浏览器,那么在`open`后面加上`-a`这个选项就可以让它正常工作。
最后,发帖的人说他还不能评论,因为他的信誉分数还不够50分。
Python的标准库里有一个叫做 webbrowser 的模块,它可以让你在不同的平台上打开新的浏览器窗口或标签页。这意味着无论你用的是哪个操作系统,它都能正常工作。如果你在OS X上使用Safari,并且它是你默认的浏览器,那么这个模块也是支持的:
>>> import webbrowser
>>> webbrowser.open("http://stackoverflow.com")
不过,webbrowser
模块并不能关闭浏览器窗口。如果你想要更高级的控制,最好使用Safari的Apple Event脚本接口,这需要安装 py-appscript。
>>> from appscript import *
>>> safari = app("Safari")
>>> safari.make(new=k.document,with_properties={k.URL:"http://stackoverflow.com"})
>>> safari.windows.first.current_tab.close()
如果你只是想改变你打开的标签页中显示的网页:
>>> safari.windows.first.current_tab.URL.set("http://www.google.com")
>>> safari.windows.first.current_tab.URL.set("http://www.python.com")
Safari的Apple Events接口有点不太直观(可惜这在Mac应用中并不少见)。如果你需要做更复杂的操作,网上有一些参考资料可以帮助你。不过,Python和py-appscript为你提供了一个很好的基础。