Вызов операционной системы, чтобы открыть URL-адрес?



Что я могу использовать для вызова ОС, чтобы открыть URL-адрес в любом браузере, который пользователь имеет по умолчанию?
Не беспокойтесь о совместимости с кросс-ОС; если он работает в linux, этого достаточно для меня!

674   5  

5 ответов:

вот как открыть браузер пользователя по умолчанию с заданным url:

import webbrowser

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

вот документация об этой функции. Это часть stdlibs Python:

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

Я успешно протестировал это на Linux, Ubuntu 10.10.

лично я действительно люблю!--8-->не использовать webbrowser модуль.

это сложный беспорядок обнюхивания для конкретных браузеров, которые не найдут браузер пользователя по умолчанию, если у них установлено более одного, и не найдут браузер, если он не знает его имя (например, Chrome).

лучше на Windows, просто использовать os.startfile функция, которая также работает на URL. В OS X вы можете использовать open командная система. На Linux есть xdg-open, а freedesktop.org стандартная команда поддерживается GNOME, KDE и 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

это даст лучший пользовательский опыт на основных платформах. Вы можете вернуться к webbrowser на других платформах, возможно. Хотя, скорее всего, если вы находитесь на неясной/необычной/встроенной ОС, где ни одна из вышеперечисленных работ не работает, шансы webbrowser тоже не получится.

тогда как насчет смешивания кодов @kobrien и @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)

можно использовать webbrowser модуль.

webbrowser.open(url)

посмотреть модуль webbrowser.

Comments

    Ничего не найдено.