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-open
GNOME, 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
'programing tip' 카테고리의 다른 글
Tensorflow에서 Poolallocator 메시지를 해석하는 방법은 무엇입니까? (0) | 2020.11.21 |
---|---|
다른 요소 앞에 오는 요소를 선택하기위한 CSS 선택기? (0) | 2020.11.21 |
event.target을 사용하여 요소 상위 요소를 타겟팅 할 수 있습니까? (0) | 2020.11.20 |
WPF ListView 비활성 선택 색상 (0) | 2020.11.20 |
.NET에서 실행중인 exe의 경로를 얻는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.20 |