wake-up-neo.com

Rufen Sie das Betriebssystem auf, um die URL zu öffnen?

Wie kann ich das Betriebssystem aufrufen, um eine URL in einem beliebigen Browser zu öffnen, den der Benutzer standardmäßig verwendet? Keine Sorge um die Kompatibilität zwischen Betriebssystemen. Wenn es unter Linux funktioniert, ist das genug für mich!

63
Bolster

So öffnen Sie den Standardbrowser des Benutzers mit einer bestimmten URL:

import webbrowser

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

Hier finden Sie die Dokumentation zu dieser Funktionalität. Es ist Teil von Pythons Stdlibs:

http://docs.python.org/library/webbrowser.html

Ich habe dies erfolgreich unter Linux, Ubuntu 10.10 getestet.

100
kobrien

Persönlich würde ich wirklich nicht das webbrowser Modul verwenden.

Es ist ein kompliziertes Schnüffeln für bestimmte Browser, bei dem der Standardbrowser des Benutzers nicht gefunden wird, wenn mehr als ein Browser installiert ist, und bei dem kein Browser gefunden wird, dessen Name nicht bekannt ist (z. B. Chrome).

Besser unter Windows ist es, einfach das os.startfile Funktion, die auch für eine URL funktioniert. Unter OS X können Sie den Systembefehl open verwenden. Unter Linux gibt es xdg-open, ein freedesktop.org-Standardbefehl, der von GNOME, KDE und XFCE unterstützt wird.

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

Dies wird eine bessere Benutzererfahrung auf Mainstream-Plattformen geben. Vielleicht könnten Sie auf anderen Plattformen auf webbrowser zurückgreifen. Obwohl es am wahrscheinlichsten ist, wenn Sie sich auf einem unbekannten/ungewöhnlichen/eingebetteten Betriebssystem befinden, auf dem keines der oben genannten Probleme auftritt, besteht die Möglichkeit, dass webbrowser ebenfalls fehlschlägt.

32
bobince

Wie wäre es dann mit dem Mischen der Codes von @kobrien und @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
Kenial

Sie können das Webbrowser Modul verwenden.

webbrowser.open(url)
5
Ivo Wetzel

Schauen Sie sich das Webbrowser-Modul an.

2
Aaron Digulla