2011-01-20 24 views
5

我對於mac世界比較陌生。我的問題涉及在mac osx上使用python打開應用程序。從我迄今發現的情況來看,應用程序似乎存儲在實際上是目錄的應用程序格式中。打開應用程序時,操作系統是以某種方式進行解析的?我想用python打開Safari,它位於我的/Applications/Safari.app目錄中。是否有一個特定的二進制文件應該傳遞給os.system,還是應該以完全不同的方式進行操作?我的最終目標是讓safari打開一個本地html文件,關閉它然後打開另一個本地html文件。打開並使用Safari

感謝, -John

回答

14

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的蘋果事件的接口是有點不直觀(不幸的是,這是不尋常與Mac應用程序)。如果你需要做更復雜的事情,那裏有參考。但是Python和py-appscript爲你提供了一個堅實的基礎。

0

這個工作對我來說:

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

感謝的作品會不會有與野生動物園開放互動中關閉單個選項卡或網頁有條款的方式 – user583599 2011-01-20 21:11:08

+0

@ user583599 Safari瀏覽器的交互是最好的蘋果呢?看看@ Ned的回答 – chrisaycock 2011-01-20 21:23:27

0

os.system(「open -a /Applications/Safari.app http://www.google.com」) 爲此,safari在打開後不是缺省add -a時工作。但 廣東話評論(口碑低於50(。)