ユーザーがデフォルトで使用しているブラウザでOSを呼び出してURLを開くために使用できるものは何ですか? OS間の互換性について心配していません。 Linuxで動作する場合はそれで十分です!
指定されたURLでユーザーのデフォルトブラウザを開く方法は次のとおりです。
import webbrowser
webbrowser.open(url[, new=0[, autoraise=True]])
この機能に関するドキュメントは次のとおりです。 Pythonのstdlibの一部です:
http://docs.python.org/library/webbrowser.html
Linux、Ubuntu 10.10でこれをテストしました。
個人的に私は本当にしないwebbrowser
モジュールを使用します。
特定のブラウザのスニッフィングは複雑です。複数のブラウザがインストールされている場合、ユーザーのデフォルトのブラウザは見つかりません。また、名前がわからない場合はブラウザが見つかりません(Chromeなど)。
Windowsでは、単にos.startfile
関数は、URLでも機能します。 OS Xでは、open
システムコマンドを使用できます。 Linuxではxdg-open
、GNOME、KDE、XFCEでサポートされているfreedesktop.org標準コマンド。
if sys.platform=='win32':
os.startfile(url)
Elif sys.platform=='darwin':
subprocess.Popen(['open', url])
else:
try:
subprocess.Popen(['xdg-open', url])
except OSError:
print 'Please open a browser on: '+url
これにより、メインストリームプラットフォームでのユーザーエクスペリエンスが向上します。他のプラットフォームでは、おそらくwebbrowser
にフォールバックできます。上記のいずれも機能しない、不明瞭/異常/組み込みOSを使用している場合は、ほとんどの場合、webbrowser
も失敗します。
それでは、@ kobrienと@bobinceのコードを混ぜてみましょう:
import subprocess
import webbrowser
import sys
url = 'http://test.com'
if sys.platform == 'darwin': # in case of OS X
subprocess.Popen(['open', url])
else:
webbrowser.open_new_tab(url)
webbrowser モジュールを使用できます。
webbrowser.open(url)
webbrowser module をご覧ください。