0

我有这个小脚本,可以计算文件中有多少个单词以及一个单词重复了多少次。我想在 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
4

2 回答 2

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 中显示它

于 2013-04-17T13:27:13.063 回答
0

目前尚不清楚您的问题是什么,GUI 的哪个部分(此处未显示)您遇到问题?而不是 wxPython,请查看tkinter。在 tkinter 中,您可以使用tkFileDialog并获取要打开和解析的文件的文件路径,尽管 wxPython 具有类似的功能。

我不想为你写出代码,但基本上,它需要:

  • 创建一个框架,
  • 创建将绑定到将启动 tkFileDialog 的命令的按钮
  • 另一组将绑定到将计算文件中的单词的命令的小部件
  • 以某种方式显示您的结果。
于 2013-04-17T02:47:53.240 回答