GNU/Linux >> Belajar Linux >  >> Linux

Panggilan ke sistem operasi untuk membuka url?

Secara pribadi saya benar-benar tidak akan gunakan webbrowser modul.

Ini adalah kekacauan mengendus yang rumit untuk browser tertentu, yang tidak akan menemukan browser default pengguna jika mereka menginstal lebih dari satu, dan tidak akan menemukan browser jika tidak mengetahui namanya (mis. Chrome).

Lebih baik di Windows cukup menggunakan os.startfile fungsi, yang juga bekerja pada URL. Di OS X, Anda dapat menggunakan open perintah sistem. Di Linux ada xdg-open , perintah standar freedesktop.org yang didukung oleh GNOME, KDE dan 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

Ini akan memberikan pengalaman pengguna yang lebih baik di platform utama. Anda dapat kembali ke webbrowser pada platform lain, mungkin. Meskipun kemungkinan besar jika Anda menggunakan OS yang tidak jelas/tidak biasa/tertanam di mana tidak ada satu pun di atas yang berfungsi, kemungkinannya adalah webbrowser akan gagal juga.


Berikut ini cara membuka browser default pengguna dengan url yang diberikan:

import webbrowser

url = "https://www.google.com/"

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

Berikut adalah dokumentasi tentang fungsi ini. Itu bagian dari stdlibs Python:

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

Saya telah menguji ini dengan sukses di Linux, Ubuntu 10.10.


Linux
  1. Query sistem operasi Linux Anda seperti database

  2. Kisah Linux saya:Meliputi open source dalam bahasa Spanyol

  3. MuditaOS:Sistem Operasi Seluler Open Source yang Cantik dan Minimal untuk Ponsel Berfitur

  1. Jadwalkan reboot di sistem operasi Ubuntu

  2. Max membuka file untuk proses kerja

  3. Apa yang dilakukan panggilan sistem brk()?

  1. Tabel panggilan sistem Linux atau lembar contekan untuk Majelis

  2. Bagaimana cara memeriksa sistem operasi dengan Python?

  3. Batalkan panggilan sistem dengan ptrace()