2012-03-20 139 views
0

下面是我的代碼:如何將瀏覽器設置爲打開web瀏覽器的本地主機?

execfile("main.py"); 
    url = "localhost:9988"; 
    webbrowser.open_new_tab(url); 

「main.py」將啓動本地主機,但是當我運行該腳本,它不會去webbrowser.open_new_tab(URL),因爲它是停留在本地主機。

有沒有辦法啓動本地主機,然後在選定的瀏覽器(即鉻/火狐)到本地主機打開一個新的選項卡?

回答

3

由於您的main.py在請求之前不會退出(因爲它是服務器),所以您需要創建一個新進程才能調用webbrowser.open_new_tab。您可以使用subprocess.Popenos.fork或類似的東西。

subprocess.Popen((sys.executable, 'main.py'))應該做的伎倆。

2

按照以下方法操作,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 - 

>>>