如何使文档名称成为可点击的超链接?

时间:2015-03-17 00:04:05

标签: python tkinter

我正在编写一个搜索引擎,用于索引硬盘上的文件集合。我有一个脚本,它接受一个查询query = raw_input()并输出一组文件名。

我希望文件名是可点击的超链接,当用户点击它们时会打开该文件。

我该怎么做?我的界面(如果这需要一个界面)只是一个搜索框和一个输出框。

这似乎可以在MATLAB中找到。

此外,如果有一个允许这样做的IDE,那么这是可以接受的(但不是更好)。

2 个答案:

答案 0 :(得分:1)

我邀请你看看pydoc模块...... 在 Python27 / LIB / pydoc.py

Pydoc GUI类可以很好地了解如何显示和启动搜索引擎。 在Pydoc的情况下..它有效地管理浏览器的启动。

另外,但我没有深入了解源代码的细节。 moduleScanner创建一个完整的HTML界面,其中包含应回答问题的超链接。

在Pydoc中你会找到

def open(self, event=None, url=None):
    url = url or self.server.url
    try:
        import webbrowser
        webbrowser.open(url)
    except ImportError: # pre-webbrowser.py compatibility
        if sys.platform == 'win32':
            os.system('start "%s"' % url)
        else:
            rc = os.system('netscape -remote "openURL(%s)" &' % url)
            if rc: os.system('netscape "%s" &' % url)

如果Url是文档(“c:/tmp/mydoc.docx”),则start命令将根据assoc和ftype windows命令启动Microsoft Word

完整的代码应该直接执行,不需要像webbrowser那样:

def open(self, event=None, path=None, tool=None, options=None):
    if option:stroptions = '%s'%options
    else:     stroptions = ''
    if tool  :strtool = '"%s"'%tool
    else:     strtool = ''  #to let the system associates itself 
    if path  :strpath = '"%s"'%path
    else:     strpath = 'just_an_example.doc'
    try:
        if sys.platform == 'win32':
            os.system('start '+strpath)
        else:
            os.system(strtool+' '+stroptions+' '+strpath)
    except: 
        os.system(strtool+' '+stroptions+' '+strpath)

答案 1 :(得分:0)

import webbrowser

...

self.entryfield = Entry(self.frame)

...
mybutton = Button(self.frame, text="Open site",
command= lambda: webbrowser.open(self.entryfield.get()))

如果用户将http://www.stackoverflow.com输入self.entryfield并点击mybutton,则会打开浏览器并转到SO。

请参阅webbrowser