2

webbrowser.get を使用した後、「a」変数の内容に関する情報を取得できますか? 'webbrowser.WindowsDefault object at 0x024643B0' しか取得できません。デフォルトのブラウザを知りたいのですが、この情報を文字列に転送します

import webbrowser
a = webbrowser.get('windows-default')
print a
a.open('http://www.google.com')
4

1 に答える 1

0

2段階の解決策は次のとおりです。

  1. 次を実行して、ブラウザ オブジェクトのクラス名を取得します。type(a).__class__
  2. ブラウザクラス名をブラウザタイプ名にマップするディクショナリを作成します。

詳細:

を実行するa = webbrowser.get('windows-default')と、 by: のクラス名を取得できますbrowser_class = type(a).__class__

下の図に基づいて、 2で強調表示されているメソッドを次のようにコーディングできます。

def which_browser(browser_class):
   return{
       'Mozilla': 'firefox',
       'Chrome' : 'google-chrome'           
   }.get(browser_class,'firefox')

このメソッドは、上記で取得したブラウザ クラス名に応じて、ブラウザ タイプ名を返しますbrowser_class。メソッドを返すように設定したことに注意してください。デフォルト ではmozillaですが、これは必ずしも単純なテスト用ではありません。つまり、単に実行できます:

def which_browser(browser_class):
   return{
       'Mozilla': 'firefox',
       'Chrome' : 'google-chrome'           
   }

その後、メソッドを呼び出しwhich_browser()てブラウザのタイプ名を取得できます。

browser_name = which_browser(browser_class)

browser_name は、必要なタイプstrです。

上記にリンクされているこの情報が必要になる場合があります。

ここに画像の説明を入力

完全なプログラム:

ブラウザを 2 つだけインストールした Linux マシンにあるものに従って、次のコードをテストしました。

import webbrowser

a = webbrowser.get('windows-default')
   
def which_browser(b):
   return{
       'Mozilla': 'firefox',
       'Chrome' : 'google-chrome'           
   }.get(b,'firefox')

print which_browser(type(a).__class__)

プログラムを実行すると、次の出力が得られますfirefox

于 2016-04-13T13:07:13.680 に答える