programing tip

URL을 열려면 운영 체제를 호출 하시겠습니까?

itbloger 2020. 11. 20. 08:43
반응형

URL을 열려면 운영 체제를 호출 하시겠습니까?


사용자가 기본으로 사용하는 브라우저에서 URL을 열기 위해 OS를 호출하려면 무엇을 사용할 수 있습니까? 크로스 OS 호환성에 대해 걱정하지 않습니다. 그것이 리눅스에서 작동한다면 그것은 나에게 충분합니다!


주어진 URL로 사용자의 기본 브라우저를 여는 방법은 다음과 같습니다.

import webbrowser

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

이 기능에 대한 문서는 다음과 같습니다. Python의 stdlib의 일부입니다.

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

Linux, Ubuntu 10.10에서 성공적으로 테스트했습니다.


개인적으로 저는 모듈을 사용 하지 않을 것webbrowser 입니다.

특정 브라우저에 대한 스니핑의 복잡한 엉망입니다. 사용자가 둘 이상의 기본 브라우저를 설치 한 경우 사용자의 기본 브라우저를 찾지 못하고 이름을 모르는 경우 (예 : Chrome) 브라우저를 찾지 못합니다.

Windows에서 더 나은 os.startfile기능은 URL에서도 작동 하는 기능 을 사용하는 것입니다. OS X에서는 open시스템 명령을 사용할 수 있습니다 . Linux에는 xdg-openGNOME, KDE 및 XFCE에서 지원하는 freedesktop.org 표준 명령이 있습니다.

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아마도 다른 플랫폼으로 돌아갈 수 있습니다. 위의 작업 중 어느 것도 작동하지 않는 모호하거나 비정상적이거나 내장 된 OS를 사용하는 경우 가능성이 가장 높지만 기회도 webbrowser실패합니다.


웹 브라우저 모듈을 사용할 수 있습니다 .

webbrowser.open(url)

그런 다음 @kobrien과 @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)

webbrowser 모듈을 살펴보십시오 .

참고 URL : https://stackoverflow.com/questions/4216985/call-to-operating-system-to-open-url

반응형