2013-04-17 139 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