打开和使用Safari

6 投票
3 回答
14170 浏览
提问于 2025-04-16 10:20

我对Mac系统还比较陌生。我的问题是关于如何在Mac OSX上用Python打开一个应用程序。根据我目前找到的信息,应用程序是以.app格式存储的,实际上它们是一些文件夹。打开应用时,操作系统会以某种方式解析这些文件夹吗?我想用Python打开Safari,它在我的/Applications/Safari.app目录下。我应该把哪个具体的二进制文件传给os.system,还是说我应该用完全不同的方法?我的最终目标是让Safari打开一个本地的HTML文件,然后关闭它,再打开另一个本地的HTML文件。

谢谢,
-John

3 个回答

1

这个对我有效:

os.system("open /Applications/Safari.app http://www.google.com")
4

这段代码的意思是用系统命令打开Safari浏览器,并且直接访问谷歌网站。具体来说,`os.system("open -a /Applications/Safari.app http://www.google.com")` 这行代码是告诉电脑去打开Safari这个应用程序,然后去加载谷歌的网页。

另外,如果你的Safari浏览器不是默认浏览器,那么在`open`后面加上`-a`这个选项就可以让它正常工作。

最后,发帖的人说他还不能评论,因为他的信誉分数还不够50分。

21

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为你提供了一个很好的基础。

撰写回答