Открытие и использование Safari - PullRequest
5 голосов
/ 20 января 2011

Я относительно новичок в мире Mac. Мой вопрос касается открытия приложения с помощью Python на Mac OSX. Из того, что я нашел до сих пор, кажется, что приложения хранятся в формате приложений, которые на самом деле являются каталогами. Они как-то анализируются ОС при открытии приложения? Я хотел бы открыть Safari с помощью python, и он находится в моем каталоге /Applications/Safari.app. Есть ли какой-то конкретный двоичный файл, который я должен передать os.system, или я должен идти об этом совершенно другим способом? Моя конечная цель - заставить safari открыть локальный HTML-файл, закрыть его, а затем открыть другой локальный HTML-файл.

Спасибо, -John

Ответы [ 3 ]

17 голосов
/ 21 января 2011

Стандартная библиотека Python включает в себя модуль webbrowser , который позволяет открывать новое окно или вкладку браузера независимо от платформы.Он поддерживает Safari в OS X, если это пользовательское значение по умолчанию:

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

Но webbrowser не поддерживает закрытие окна браузера.Для этого уровня управления вам лучше всего использовать интерфейс сценариев Apple Safari, установив 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")

Интерфейс Apple Events в Safari несколько не интуитивен (к сожалению, это не является необычным для приложений Mac).Там есть ссылки, если вам нужно сделать более сложные вещи.Но Python и py-appscript дают вам прочную основу для работы.

0 голосов
/ 16 февраля 2017

os.system ("open -a /Applications/Safari.app http://www.google.com") чтобы это работало, когда safari не используется по умолчанию, добавьте -a после открытия. Не могу еще прокомментировать (репутация ниже 50 (:)

0 голосов
/ 21 января 2011

Это работает для меня:

os.system("open /Applications/Safari.app http://www.google.com")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...