我有这个小脚本可以计算文件中有多少单词以及一个单词重复多少次。我想在wxPython中创建一个gui,我可以在其中输入文件名,它会显示结果。
我一直在关注wxPython示例,但仍然没有掌握它。这是脚本
#!/usr/bin/env python
import sys
import os
import re
import operator
if len(sys.argv) == 1:
sys.exit("Usage: "+sys.argv[0]+" files...");
line = sys.argv[1:]
num = 0
dic = {}
for i in line:
dat = open(i, "r").read()
words = re.findall(r'[a-z]+',dat)
for word in words:
if len(word)>3:
num=num+1
if dic.has_key(word):
dic[word]=dic[word]+1
else:
dic[word]=1
print num
sorted_dic = sorted(dic.iteritems(), key=operator.itemgetter(1), reverse=True)
print sorted_dic
答案 0 :(得分:0)
目前还不清楚你的问题是什么,GUI的哪一部分(这里没有显示)你遇到了麻烦?而不是wxPython,请查看tkinter。在tkinter中,您可以使用tkFileDialog并获取要打开和解析的文件的文件路径,尽管wxPython具有类似的功能。
我不想为你写出代码,但基本上,它需要:
答案 1 :(得分:0)
看看wx.FileDialog让你入门。这是一个讲述所有标准对话框的教程,包括文件对话框:http://www.blog.pythonlibrary.org/2010/06/26/the-dialogs-of-wxpython-part-1-of-2/(向下向下滚动一半)。
现在你可能会用某种按钮打开文件对话框。因此,您将按钮绑定到EVT_BUTTON并在事件处理程序中打开文件对话框。像这样:
myButton.Bind(wx.EVT_BUTTON, self.openFileDialog)
现在,在openFileDialog(事件处理程序)方法中,您可以打开对话框并检索路径。此时,您将路径传递给您已编写的代码,该代码可以是事件处理程序的一部分,也可以将其放在自己的方法中。然后,当您得到结果时,您可能希望将其显示在wx.StaticText小部件中,或者可能在wx.MessageBox中显示它