python TK庫 統計word文件單詞詞頻程式 UI選擇文件
import tkinter as tk
import docx
import webbrowser
import winreg
import win32ui
import tkinter.messagebox
from tkinter import *
from tkinter import filedialog
filePath = ''
def get_desktop():
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders') # 利用系統的連結串列
# winreg.QueryValueEx(key, "Desktop")[0] #返回的是Unicode型別資料
Desktop_path = str(winreg.QueryValueEx(key, "Desktop")[0]) # Unicode轉化為str
return Desktop_path
class App:
def __init__(self, width=500, height=300):
self.w = width
self.h = height
self.title = 'count word'
self.root = tk.Tk(className=self.title)
self.url = tk.StringVar()
frame_1 = tk.Frame(self.root)
frame_2 = tk.Frame(self.root)
frame_3 = tk.Frame(self.root)
global label1
play = tk.Button(frame_1, text='選擇檔案', font=('楷體', 12), fg='Purple', width=20, height=10, command=self.get_FileDialogPath)
label1 = tk.Label(frame_2, text="等待您的選擇~"+filePath)
play2 = tk.Button(frame_3, text="開始", font=('楷體', 12), fg='Purple', width=2, height=1, command=self.count)
frame_1.pack()
frame_2.pack()
frame_3.pack()
play.grid(row=0, column=3, ipadx=10, ipady=10)
play2.grid(row=0, column=3, ipadx=10, ipady=10)
label1.grid(row=0, column=0)
def count(self):
excludes = ['the', 'and', 'to', 'of', 'i', 'a', 'in', 'it', 'that', 'is',
'you', 'my', 'with', 'not', 'his', 'this', 'but', 'for',
'me', 's', 'he', 'be', 'as', 'so', 'him', 'your', 'her', 'us', 'are']
def getText():
file = docx.Document(filePath)
txt = '\n'.join([paragraph.text for paragraph in file.paragraphs])
txt = txt.lower()
txt = txt.replace('"', " ")
for ch in "~@#$%^&*()_-+=<>?/,.:;{}[]|\'":
txt = txt.replace(ch, ' ')
return txt
hamletTxt = getText()
words = hamletTxt.split()
counts = {}
sumcount = 0
for word in words:
counts[word] = counts.get(word, 0) + 1
sumcount = sumcount + 1
counts_ex = counts.copy()
for key in counts.keys():
if key in excludes:
counts_ex.pop(key)
items = list(counts_ex.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(10):
word, count = items[i]
print('{0:<10}{1:>5}'.format(word, count))
window = tk.Tk()
window.title('outcome')
window.geometry('500x300')
t = tk.Text(window, width=200, height=100,font=('楷體', 30))
t.pack()
lines = []
lines.append('單詞種類:' + str(len(items)) + '\n')
lines.append('單詞總數:' + str(sumcount) + '\n')
lines.append('詞頻排序如下:\n')
lines.append('word\tcounts\n')
s = ''
for i in range(len(items)):
s = '\t'.join([str(items[i][0]), str(items[i][1])])
s += '\n'
lines.append(s)
print('\n統計完成!\n')
out = ' '.join(lines)
t.insert('insert', out)
def center(self):
ws = self.root.winfo_screenwidth()
hs = self.root.winfo_screenheight()
x = int((ws / 2) - (self.w / 2))
y = int((hs / 2) - (self.h / 2))
self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))
def loop(self):
# 禁止修改視窗大小
self.root.resizable(False, False)
# 視窗居中
self.center()
self.root.mainloop()
def get_FileDialogPath(self):
global filePath
dlg = win32ui.CreateFileDialog(1) # 1表示開啟檔案對話方塊
dlg.SetOFNInitialDir(get_desktop()) # 設定開啟檔案對話方塊中的初始顯示目錄
dlg.DoModal()
filename = dlg.GetPathName() # 獲取選擇的檔名稱
filePath = filename
label1.config(text='請確認您選擇的檔案:' + filePath)
label1.pack()
if __name__ == '__main__':
app = App() # 例項化APP物件
app.loop() # loop等待使用者事件
相關文章
- python如何統計詞頻Python
- 詞語詞頻統計
- python實現詞頻統計Python
- 詞頻統計
- 文字挖掘之語料庫、分詞、詞頻統計分詞
- 詞頻統計mapreduce
- python使用jieba實現中文文件分詞和去停用詞PythonJieba分詞
- Python統計四六級考試的詞頻Python
- Python加密word文件Python加密
- 詞頻統計任務程式設計實踐程式設計
- Java、Scala、Python ☞ 本地WordCount詞頻統計對比JavaPython
- python 計算txt文字詞頻率Python
- JAVA技巧:使用java生成word文件選擇合適元件Java元件
- PostgreSQL全文檢索-詞頻統計SQL
- 統計英文名著中單詞出現頻率
- 用Python如何統計文字檔案中的詞頻?(Python練習)Python
- Python 將Word/ Exce/ PDF/ PPT文件轉為OFD文件Python
- Javafx-【直方圖】文字頻次統計工具 中文/英文單詞統計Java直方圖
- 使用map:單詞計數程式
- JavaWeb名詞解釋及幫助文件JavaWeb
- C++ 統計單詞數C++
- LeetCode題解(0692):前K個高頻單詞(Python)LeetCodePython
- python-docx操作word文件詳解Python
- 已知詞頻生成詞雲圖(資料庫到生成詞雲)--generate_from_frequencies(WordCloud)資料庫Cloud
- python 實現中文分詞統計Python中文分詞
- 給《Laravel 中文文件》新增一個語言選擇選單Laravel
- python統計英文文字中的迴文單詞數Python
- java生成word文件Java
- python word 應用,設定 word 文件的內容格式Python
- Word文件怎麼新增批註?Word文件批註新增教程
- Python 批次合併圖片到word文件Python
- 瓦爾登湖單詞統計+排序排序
- python jieba庫,句子分詞PythonJieba分詞
- Python 英語單詞本Python
- sensitive-word v0.13 特性版本釋出 支援英文單詞全詞匹配
- zzulioj:1133:單詞個數統計(python)我有點皮!!嘿嘿Python
- 詞向量表示:word2vec與詞嵌入
- 如何將中文文件語料訓練成詞向量