下面是我的代碼:如何將瀏覽器設置爲打開web瀏覽器的本地主機?
execfile("main.py");
url = "localhost:9988";
webbrowser.open_new_tab(url);
「main.py」將啓動本地主機,但是當我運行該腳本,它不會去webbrowser.open_new_tab(URL),因爲它是停留在本地主機。
有沒有辦法啓動本地主機,然後在選定的瀏覽器(即鉻/火狐)到本地主機打開一個新的選項卡?
下面是我的代碼:如何將瀏覽器設置爲打開web瀏覽器的本地主機?
execfile("main.py");
url = "localhost:9988";
webbrowser.open_new_tab(url);
「main.py」將啓動本地主機,但是當我運行該腳本,它不會去webbrowser.open_new_tab(URL),因爲它是停留在本地主機。
有沒有辦法啓動本地主機,然後在選定的瀏覽器(即鉻/火狐)到本地主機打開一個新的選項卡?
由於您的main.py在請求之前不會退出(因爲它是服務器),所以您需要創建一個新進程才能調用webbrowser.open_new_tab
。您可以使用subprocess.Popen
,os.fork
或類似的東西。
subprocess.Popen((sys.executable, 'main.py'))
應該做的伎倆。
按照以下方法操作,Popen
。它應該工作。您必須用您自己的可執行文件替換python -m SimpleHTTPServer 8000
。
代碼:
import subprocess
import webbrowser
subprocess.Popen(['python', '-m', 'SimpleHTTPServer', '8000'])
webbrowser.open_new_tab('localhost:8000')
執行:
[12:21:49] [email protected]:[/tmp]$ python
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import subprocess
>>> import webbrowser
>>>
>>> subprocess.Popen(['python', '-m', 'SimpleHTTPServer', '8000'])
<subprocess.Popen object at 0x7f09924df210>
>>> Serving HTTP on 0.0.0.0 port 8000 ...
>>> webbrowser.open_new_tab('localhost:8000')
True
>>> localhost.localdomain - - [20/Mar/2012 12:22:29] "GET/HTTP/1.1" 200 -
Created new window in existing browser session.
localhost.localdomain - - [20/Mar/2012 12:22:29] code 404, message File not found
localhost.localdomain - - [20/Mar/2012 12:22:29] "GET /favicon.ico HTTP/1.1" 404 -
>>>