Co mogę użyć, aby wywołać system operacyjny w celu otwarcia adresu URL w dowolnej przeglądarce domyślnie używanej przez użytkownika? Nie martwisz się kompatybilnością z różnymi systemami operacyjnymi; jeśli działa w Linuksie, to wystarczy dla mnie!Zadzwoń do systemu operacyjnego, aby otworzyć URL?
Odpowiedz
Oto jak otworzyć domyślną przeglądarkę użytkownika z danego adresu URL:
import webbrowser
webbrowser.open(url[, new=0[, autoraise=True]])
Oto dokumentacja o tej funkcjonalności. To część stdlibs Pythona:
http://docs.python.org/library/webbrowser.html
ja testowałem to z powodzeniem w systemach Linux, Ubuntu 10.10.
FWIW działa również w systemie Windows. – martineau
Testuję go na Ubuntu 12.04 i działa też dobrze, –
Działa na Mac. – daviewales
Spójrz na webbrowser module.
Można użyć modułu webbrowser.
webbrowser.open(url)
Osobiście naprawdę nie byłby używać modułu webbrowser
.
To skomplikowany bałagan dla wąchania określonych przeglądarek, które nie znajdą domyślnej przeglądarki użytkownika, jeśli mają zainstalowaną więcej niż jedną, i nie znajdą przeglądarki, jeśli nie zna jej nazwy (np. Chrome).
Lepsze w systemie Windows jest po prostu użycie funkcji os.startfile
, która działa również na adres URL. W systemie OS X można użyć polecenia systemowego open
. W systemie Linux jest xdg-open
, standardowa komenda freedesktop.org obsługiwana przez GNOME, KDE i XFCE.
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
Zapewni to lepszą obsługę użytkowników na popularnych platformach. Możliwe, że możesz wrócić do webbrowser
na innych platformach. Chociaż najprawdopodobniej w przypadku mało znanego/nietypowego/wbudowanego systemu operacyjnego, gdzie żadna z powyższych czynności nie zadziała, prawdopodobnie ulegną one również awarii.
Właśnie sprawdziłem źródło dla przeglądarki internetowej i nie jestem pewien, czy się z tobą zgadzam. Tylko wąsy unixowe wyglądają trochę niewiarygodnie, a nawet powinny działać poprawnie w KDE lub GNOME (prawdopodobnie użyłoby to łatki do użycia 'xdg-open', chociaż' xdg-open' i tak używa podobnego sniffingu). Na przykład implementacja win32 używa już 'os.startfile()' i ma również rezerwę. –
Moduł webbrowser pracował dla mnie, gdy Safari był moją domyślną przeglądarką, a także gdy miałem Chrome jako domyślną przeglądarkę na Macu. – daviewales
Zauważ, że przeglądarka internetowa używa teraz 'xdg-open'. Tak więc ta odpowiedź jest nieaktualna na nowoczesnym pythonie i nie ma powodu, aby nie używać modułu przeglądarki. – Chronial
Potem jak o mieszanie kodów @kobrien i @bobince up:
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)
- 1. Node.js, aby uzyskać/określić wersję systemu operacyjnego
- 2. Określanie systemu operacyjnego w .vimrc
- 3. Jak znaleźć nazwę systemu operacyjnego?
- 4. Czy można użyć otwartego adresu URL, aby otworzyć adres URL:
- 5. Jak rozwidlić cały kod systemu operacyjnego Android?
- 6. Jak uzyskać numer wersji systemu operacyjnego?
- 7. Identyfikacja szczegółów systemu operacyjnego w języku C#
- 8. Bezpieczne czcionki wszystkie przeglądarki i systemu operacyjnego
- 9. Jakieś ekwiwalenty Monit dla systemu operacyjnego Windows?
- 10. Cabal "os" Flaga z wersji systemu operacyjnego
- 11. jqGrid, zadzwoń URL z parametrami Json zamian
- 12. Obsługa ustawień regionalnych systemu operacyjnego do użycia w języku Python
- 13. Nie można załadować zbiorczo, ponieważ nie można otworzyć pliku. Kod błędu systemu operacyjnego 3
- 14. Zadzwoń do Facebooka omniauth i #_
- 15. odblokować Zablokowane Winsock accept() Zadzwoń
- 16. Konwertuj adres URL na ścieżkę do systemu plików
- 17. Zadzwoń do R & Fortran
- 18. Jak uruchomić skrypt PowerShell z wiersza poleceń systemu operacyjnego?
- 19. Jak mogę przekazać zmienne URL GET URL, aby otworzyć okno z Javascriptem?
- 20. Jakie oprogramowanie systemu operacyjnego brakuje w świecie .NET?
- 21. Jak nie określić motywu WPF i użyć motywu systemu operacyjnego?
- 22. Czy implementacja bibliotek C zależy od systemu operacyjnego?
- 23. Kompilacja warunkowa w C++ na podstawie systemu operacyjnego
- 24. Jak programowo wykrywać wersję systemu operacyjnego Windows Phone 8.1?
- 25. Jak sprawdzić niezawodność mojego (małego) wbudowanego systemu operacyjnego?
- 26. Jak mogę uzyskać przyszłą wersję przyjaznego dla użytkownika systemu operacyjnego?
- 27. Czy jest jakiś klient GUI Github dla systemu operacyjnego Linux?
- 28. Dlaczego Locky nie blokuje tego wątku systemu operacyjnego?
- 29. wartość CurrentVersion w rejestrze dla każdego systemu operacyjnego Windows
- 30. Jakie są zalety używania "oficjalnego" katalogu tymczasowego dla systemu operacyjnego?
Co os szukasz od Windows, MacOS i Linux mają inną konwencję telefonicznej. – koblas