python - 打开和使用 Safari

标签 python macos

我对 Mac 世界还比较陌生。我的问题涉及在 mac osx 上使用 python 打开应用程序。从目前我所发现的情况来看,应用程序似乎以实际上是目录的应用程序格式存储。打开应用程序时,操作系统是否以某种方式解析了这些?我想使用 python 打开 Safari,它在我的/Applications/Safari.app 目录中。我应该将特定的二进制文件传递给 os.system 还是应该以完全不同的方式处理它?我的最终目标是让 safari 打开一个本地 html 文件,关闭它然后打开另一个本地 html 文件。

谢谢, -约翰

最佳答案

Python 标准库包括 webbrowser允许您以独立于平台的方式打开新的浏览器窗口或选项卡的模块。如果它是用户的默认值,它确实支持 OS X 上的 Safari:

>>> import webbrowser
>>> webbrowser.open("http://stackoverflow.com")

但是webbrowser不支持关闭浏览器窗口。对于该级别的控制,您最好通过安装 py-appscript 使用 Safari 的 Apple 事件脚本界面。 .

>>> 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 为您提供了坚实的工作基础。

关于python - 打开和使用 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4752473/

相关文章:

Mac OS High Sierra 上的 Java 驱动程序 Firebird 2.5

python - 从另一个脚本运行 python 脚本时如何获得正确的退出代码?

python - 对 opencv 直播流应用多重效果

python - scipy中拟合算法之间的区别

python - 如何让 Django 在 XAMPP 中与 MySQL 一起工作?

android - 带有 NDK r10d 的 Android FFMPEG 2.5.4 构建

python - tkinter Canvas 窗口无法从Powershell打开

java - 无法在 "/usr/bin/java/bin/java"(-1) 找到可执行文件

java - 使用 Java 编写 Mac 应用程序包/文件夹

ruby-on-rails - 安装 Ruby 2.2.6 时 macOS Sierra 的 RVM 问题