2013-04-17 105 views
0

我有这个小脚本来计算文件中有多少个单词,以及一个单词重复多少次。我想在wxPython中创建一个可以输入文件名的GUI,它会显示结果。为简单的python脚本创建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

你在读什么类型的文件? txt或其他东西 – Domagoj

回答

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) 

现在,在您打开文件对话框(事件处理程序)的方法,你可以打开对话框,检索路径。此时,您将路径传递给您已写入的代码,该代码可以是事件处理程序的一部分,也可以将其放入自己的方法中。然后,当你得到结果时,你可能想要显示它在一个wx.StaticText小部件,或者可能显示在一个wx.MessageBox

+0

谢谢,这对我有帮助。 – 10001a

0

不清楚你的问题是什么,GUI的哪一部分(这里没有显示),你有麻烦吗?而不是wxPython,检查出tkinter。在tkinter中,您可以使用tkFileDialog并获取要打开和解析的文件的文件路径,尽管wxPython具有相似的功能。

我不想写出来你的代码,但基本上,它会要求:

  • 创建一个框架,
  • 创建将被绑定到该命令的按钮将启动tkFileDialog
  • 另一组小部件将绑定到将对文件中的单词进行计数的命令
  • 以某种方式显示您的结果。
+0

wx.python也有FileDialog – Domagoj

+0

http://www.wxpython.org/docs/api/wx.FileDialog-class.html – Domagoj

+0

@DomagojHack谢谢,当然。我只是想让他从一个更简单的GUI开始,因为wx有点棘手。 – TankorSmash