2016-12-03 4 views
0

Я пытаюсь ознакомиться с Python с серьезной проблемой для веб-публикации, поэтому я осмотрелся и нашел следующий пример. Запуск 2,7 в PyScripter в Windows 7 не вызвал браузер, как я ожидал. Код появился в Notepad ++ вместо этого, по-видимому, поскольку суффикс html был связан с Notepad. Я пробовал около дюжины различных перестановок кода, но html-файл все еще открыт в «Блокноте», пока я не связал этот файл с Firefox. Когда я включаю команду print webbrowser._browsers, я получаю {'windows-default': [, None], 'c: \ program files (x86) \ internet explorer \ iexplore.exe': [Нет,]}Python webbrowser не открывается браузер

Это означало бы, что IE должен быть браузером по умолчанию, но, очевидно, это не так. Может ли кто-нибудь просветить меня здесь, так как я новичок Python?

'''A simple program to create an html file froma given string, 
and call the default web browser to display the file.''' 

contents = '''<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
    <meta content="text/html; charset=ISO-8859-1" 
http-equiv="content-type"> 
    <title>Hello</title> 
</head> 
<body> 
Hello, World! 
</body> 
</html> 
''' 

import webbrowser 

def main(): 
    browseLocal(contents) 

def strToFile(text, filename): 
    """Write a file with the given name and the given text.""" 
    output = open(filename,"w") 
    output.write(text) 
    output.close() 

def browseLocal(webpageText, filename='C:\\Python27\\Programs\\tempBrowseLocal.html'): 
    '''Start your webbrowser on a local file containing the text 
    with given filename.''' 
    strToFile(webpageText, filename) 
    print webbrowser._browsers 
    webbrowser.open(filename) 


main() 

ответ

0
def browseLocal(webpageText):#take filename out of here 
    '''Start your webbrowser on a local file containing the text 
    with given filename.''' 
    #define filename here. 
    filename='C:\\Python27\\Programs\\tempBrowseLocal.html' 
    strToFile(webpageText, filename) 
    print webbrowser._browsers 
    webbrowser.open(filename) 
+0

Перемещение декларации имен файлов не работает. Если файл html связан с блокнотом, появляется блокнот, а не браузер по умолчанию – bobv

+0

@Bobv, возможно, модуль webbrowser не открывает локальные файлы. Попробуйте выполнить sub process.popen(), как предлагается здесь http://stackoverflow.com/questions/15054434/how-can-i-open-files-in-external-programs-in-python – mcmxl

+0

Спасибо, subprocess.Popen() похоже, работает. – bobv