Wie kann ich das Betriebssystem aufrufen, um eine URL in einem beliebigen Browser des Benutzers zu öffnen? Keine Sorge um die Kompatibilität zwischen Betriebssystemen; Wenn es unter Linux funktioniert, ist das genug für mich!
Wie kann ich das Betriebssystem aufrufen, um eine URL in einem beliebigen Browser des Benutzers zu öffnen? Keine Sorge um die Kompatibilität zwischen Betriebssystemen; Wenn es unter Linux funktioniert, ist das genug für mich!
Antworten:
So öffnen Sie den Standardbrowser des Benutzers mit einer bestimmten URL:
import webbrowser
webbrowser.open(url[, new=0[, autoraise=True]])
Hier ist 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.
import antigravityverwendet: hg.python.org/cpython/file/tip/Lib/antigravity.py
Persönlich würde ich das Modul wirklich nicht benutzen webbrowser.
Es ist ein kompliziertes Durcheinander des Schnüffelns für bestimmte Browser, das den Standardbrowser des Benutzers nicht findet, wenn mehr als ein Browser installiert ist, und keinen Browser findet, wenn er den Namen nicht kennt (z. B. Chrome).
Unter Windows ist es einfach, einfach die os.startfileFunktion zu verwenden, die auch für eine URL funktioniert. Unter OS X können Sie den openSystembefehl verwenden. Unter Linux gibt es xdg-openeinen Standardbefehl von freedesktop.org, 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 bietet eine bessere Benutzererfahrung auf Mainstream-Plattformen. Sie könnten webbrowservielleicht auf andere Plattformen zurückgreifen . Obwohl es am wahrscheinlichsten ist, wenn Sie sich auf einem obskuren / ungewöhnlichen / eingebetteten Betriebssystem befinden, auf dem keine der oben genannten Funktionen funktioniert, ist die Wahrscheinlichkeit webbrowsergroß, dass auch dies fehlschlägt.
xdg-open, obwohl es xdg-opensowieso ein ähnliches Sniffing verwendet). Die Win32-Implementierung wird beispielsweise os.startfile()bereits verwendet und hat auch einen Fallback.
xdg-openjetzt auch verwendet. Daher ist diese Antwort auf modernem Python veraltet und es gibt keinen Grund, das Webbrowser-Modul nicht zu verwenden.
Sie können das Webbrowser- Modul verwenden.
webbrowser.open(url)
Schauen Sie sich das Webbrowser-Modul an .