オペレーティングシステムを呼び出してURLを開きますか?

operating-system python system-calls url
オペレーティングシステムを呼び出してURLを開きますか?

ユーザーがデフォルトで使用しているブラウザでOSを呼び出してURLを開くために使用できるものは何ですか? OS間の互換性について心配していません。 Linuxで動作する場合はそれで十分です!

  60  10


ベストアンサー

指定されたURLでユーザーのデフォルトブラウザを開く方法は次のとおりです。

import webbrowser

webbrowser.open(url[, new=0[, autoraise=True]])

この機能に関するドキュメントは次のとおりです。 Pythonのstdlibの一部です:

Linux、Ubuntu 10.10でこれをテストしました。

92


個人的には、実際に「webbrowser」モジュールを使用しないでください。

特定のブラウザのスニッフィングは複雑です。複数のブラウザがインストールされている場合、ユーザーのデフォルトのブラウザは見つかりません。また、名前がわからない場合はブラウザが見つかりません(Chromeなど)。

Windowsでより良いのは、URLでも機能する `os.startfile`関数を使用することです。 OS Xでは、 `open`システムコマンドを使用できます。 Linuxには、GNOME、KDE、XFCEでサポートされているfreedesktop.orgの標準コマンドである「xdg-open」があります。

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」も失敗する可能性があります。

30


webbrowserモジュールを使用できます。

webbrowser.open(url)

5


それでは、@ 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)

5


webbrowser moduleをご覧ください。

2


タイトルとURLをコピーしました