使用图形用户界面实现。任意选择一个文本文件,分析该文件,如果存在敏感词汇,报告每个词出现的次数。敏感词汇保存在sentive.txt文件中,每个词占一行,至少设置10个敏感词汇。在用户界面中可以对敏感词汇进行管理,添加删除修改查询。 扩展:不限于文本文件,可以是word文件,也可以是网络中某一个网页代码
时间: 2023-12-03 20:47:46 浏览: 256
实现这个功能需要涉及以下几个方面:
1. GUI设计:需要设计一个用户界面,包括打开文件、管理敏感词汇等功能的按钮和输入框。
2. 文件读取和解析:需要读取用户选择的文件,并对其中的文本内容进行解析和分析,查找其中是否包含敏感词汇。
3. 敏感词汇管理:需要实现对敏感词汇的添加、删除、修改和查询等操作,将用户的操作反映在sentive.txt文件中。
4. 扩展功能:如果需要支持word文件或者网页代码,还需要对不同格式的文件进行解析和分析。
下面是一个简单的实现思路:
1. GUI设计:使用Python的Tkinter库进行GUI设计,包括打开文件、管理敏感词汇等功能的按钮和输入框。
2. 文件读取和解析:使用Python的文件读取和字符串处理函数,读取用户选择的文件,并对其中的文本内容进行解析和分析,查找其中是否包含敏感词汇。
3. 敏感词汇管理:使用Python的文件读写函数,对sentive.txt文件进行读取和写入操作,实现对敏感词汇的添加、删除、修改和查询等操作。
4. 扩展功能:如果需要支持word文件或者网页代码,可以使用Python的第三方库,如python-docx和beautifulsoup4,对不同格式的文件进行解析和分析。
下面是一个简单的代码示例,仅供参考:
```python
import tkinter as tk
# 敏感词汇管理功能
def add_word():
word = word_entry.get()
# 将敏感词汇添加到sentive.txt文件中
with open('sentive.txt', 'a') as f:
f.write(word + '\n')
word_listbox.insert(tk.END, word)
def delete_word():
word = word_listbox.get(tk.ACTIVE)
# 将敏感词汇从sentive.txt文件中删除
with open('sentive.txt', 'r') as f:
words = [line.strip() for line in f.readlines()]
words.remove(word)
with open('sentive.txt', 'w') as f:
f.write('\n'.join(words))
word_listbox.delete(tk.ACTIVE)
def modify_word():
old_word = word_listbox.get(tk.ACTIVE)
new_word = word_entry.get()
# 将敏感词汇从sentive.txt文件中修改
with open('sentive.txt', 'r') as f:
words = [line.strip() for line in f.readlines()]
index = words.index(old_word)
words[index] = new_word
with open('sentive.txt', 'w') as f:
f.write('\n'.join(words))
word_listbox.delete(tk.ACTIVE)
word_listbox.insert(index, new_word)
def search_word():
word = word_entry.get()
# 在sentive.txt文件中查找敏感词汇
with open('sentive.txt', 'r') as f:
words = [line.strip() for line in f.readlines()]
if word in words:
index = words.index(word)
word_listbox.selection_clear(0, tk.END)
word_listbox.selection_set(index)
word_listbox.activate(index)
else:
tk.messagebox.showinfo('提示', '未找到该敏感词汇!')
# 文件读取和解析功能
def open_file():
file_path = tk.filedialog.askopenfilename()
if file_path:
with open(file_path, 'r') as f:
content = f.read()
# 在文件中查找敏感词汇
with open('sentive.txt', 'r') as f:
words = [line.strip() for line in f.readlines()]
word_count = {}
for word in words:
count = content.count(word)
if count > 0:
word_count[word] = count
# 显示敏感词汇出现次数
result_text.delete(1.0, tk.END)
if word_count:
for word, count in word_count.items():
result_text.insert(tk.END, '{}: {}\n'.format(word, count))
else:
result_text.insert(tk.END, '未检测到敏感词汇!')
# 创建GUI界面
root = tk.Tk()
root.title('敏感词汇检测工具')
root.geometry('600x400')
# 敏感词汇管理界面
word_frame = tk.Frame(root)
word_frame.pack(side=tk.LEFT, fill=tk.Y)
word_label = tk.Label(word_frame, text='敏感词汇列表:')
word_label.pack(side=tk.TOP)
word_scrollbar = tk.Scrollbar(word_frame)
word_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
word_listbox = tk.Listbox(word_frame, yscrollcommand=word_scrollbar.set)
word_listbox.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
word_scrollbar.config(command=word_listbox.yview)
word_entry = tk.Entry(word_frame)
word_entry.pack(side=tk.LEFT, padx=5)
add_button = tk.Button(word_frame, text='添加', command=add_word)
add_button.pack(side=tk.LEFT, padx=5)
delete_button = tk.Button(word_frame, text='删除', command=delete_word)
delete_button.pack(side=tk.LEFT, padx=5)
modify_button = tk.Button(word_frame, text='修改', command=modify_word)
modify_button.pack(side=tk.LEFT, padx=5)
search_button = tk.Button(word_frame, text='查询', command=search_word)
search_button.pack(side=tk.LEFT, padx=5)
# 文件读取和解析界面
file_frame = tk.Frame(root)
file_frame.pack(side=tk.RIGHT, fill=tk.BOTH, expand=True)
file_button = tk.Button(file_frame, text='打开文件', command=open_file)
file_button.pack(side=tk.TOP, padx=5, pady=5)
result_label = tk.Label(file_frame, text='检测结果:')
result_label.pack(side=tk.TOP, padx=5, pady=5)
result_text = tk.Text(file_frame)
result_text.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
root.mainloop()
```
阅读全文