我正在编写一个搜索引擎,用于索引硬盘上的文件集合。我有一个脚本,它接受一个查询query = raw_input()
并输出一组文件名。
我希望文件名是可点击的超链接,当用户点击它们时会打开该文件。
我该怎么做?我的界面(如果这需要一个界面)只是一个搜索框和一个输出框。
这似乎可以在MATLAB
中找到。
此外,如果有一个允许这样做的IDE,那么这是可以接受的(但不是更好)。
答案 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
。