6

新しいブラウザウィンドウの個別のタブでいくつかのURLを開くPythonプログラムがありますが、コマンドラインからプログラムを実行し、を使用してブラウザを開くと

webbrowser.open_new(url)

Firefoxからのstderrはbashに印刷します。ドキュメントを見ると、リダイレクトしたり抑制したりする方法が見つからないようです

私は使用することに頼ってきました

browserInstance = subprocess.Popen(['firefox'], stdout=log, stderr=log)

ここで、logは一時ファイルであり、webbrowser.open_newで他のタブを開きます。

webbrowserモジュール内でこれを行う方法はありますか?

4

3 に答える 3

6

webbrowser.get()は何を提供しますか?

もし、するなら

 webbrowser.get('firefox').open(url)

そうすれば、出力は表示されないはずです。webbrowserモジュールは、一部のブラウザー、特にテキストブラウザー、およびそれが確実でないブラウザーにstderrを残すことを選択します。背景をTrueに設定したすべてのUnixBrowserの場合、出力は表示されません。

于 2009-08-29T21:14:34.223 に答える
0

/dev/null一時ファイルの代わりに出力を送信するのはどうですか?

于 2009-08-29T21:03:52.717 に答える
0

MartinはUnixシステムについては正しいと思いますが、Windowsでは状況が異なるようです。これはWindowsシステムですか?

Windowsでは、webbrowser.pyがwebbrowser.WindowsDefaultブラウザーを提供するように見えます。これにより、次のコマンドを使用してURLが開きます。

os.startfile(url)

または、Firefoxが存在する場合は、webbrowser.BackgroundBrowserが提供されます。これにより、Windowsで次のコマンドを使用してブラウザが起動します。

p = subprocess.Popen(cmdline)

WebブラウザモジュールでstderrをリダイレクトできるのはUnixブラウザだけのようです。実行することで、取得しているブラウザの種類を確認できるはずです。

>>> webbrowser.get('firefox')

Pythonインタラクティブコンソール。

于 2009-08-29T21:50:51.187 に答える