这是本人在大二上学期python程序设计的一个期末作业,然后现在发布到网上进行分享,如果各位大佬有什么完善优化的建议可以评论区留言!万分感谢!

本次python实验期末作业我利用课堂所学内容和课外所接触的新知识制作一个“词云定制器”的系统。

通过该词云定制器系统,在可视化界面中菜单栏的下拉框进行预览和选取自己喜欢的定制的词云logo类型,其次同样在菜单中选取自己喜欢的小说,选取小说之后就会自动生成我们刚才所定制的词云图,定制多张词云图后,还可以在菜单中选中显示所生成的词云图,之后将会把我们刚才所定制了多少张词云图显示在弹窗的文本框之中,并且有对应的logo词云图名称,方便我们的查找,再者若想找到我们特定某张词云图时可以点击弹窗的显示图片按钮,就会显示出我们刚才所设计的所有词云图,在我们查看设计的词云图时,也许会感觉某一张图片我们不是特别地喜欢,这个时候我们就可以点击弹窗的删除按钮,根据提示要求,输入我们想要删除的词云图名称,然后进行删除操作。

话不多说上代码

import tkinter as tk
from tkinter import *
from PIL import Image, ImageTk
import numpy as np
import wordcloud
import matplotlib.pyplot as plt
import PIL
import jieba
from matplotlib import colors
from os import listdir
import os
from tkinter import messagebox
class Window(Frame):type_logo_name=""def __init__(self, master=None):Frame.__init__(self, master)self.master = masterself.init_window()def init_window(self):self.master.title("词云定制器")self.pack(fill=BOTH, expand=1)menu = Menu(self.master)self.master.config(menu=menu)load = Image.open(r'd:\abc.png')render = ImageTk.PhotoImage(load)img0 = Label(self, image=render)img0.image = renderimg0.place(x=0, y=0)a = Menu(menu)a.add_command(label='白夜行',command=self.typechange1)a.add_command(label='放学后',command=self.typechange2)a.add_command(label='红楼梦',command=self.typechange3)a.add_command(label='活着',command=self.typechange4)a.add_command(label='解忧杂货铺',command=self.typechange5)a.add_command(label='罗生门',command=self.typechange6)a.add_command(label='平凡的世界',command=self.typechange7)a.add_command(label='人间失格',command=self.typechange8)a.add_command(label='射雕英雄传',command=self.typechange9)a.add_command(label='水浒传',command=self.typechange10)a.add_command(label='天龙八部',command=self.typechange11)a.add_command(label='围城',command=self.typechange12)a.add_command(label='西游记',command=self.typechange13)a.add_command(label='嫌疑人X的献身',command=self.typechange14)menu.add_cascade(label='词云文本', menu=a)b = Menu(menu)b.add_command(label='Palace_logo', command=self.showlogoImg1)b.add_command(label='Adidas_logo', command=self.showlogoImg2)b.add_command(label='Bape_logo', command=self.showlogoImg3)b.add_command(label='Champion_logo', command=self.showlogoImg4)b.add_command(label='Converse_logo', command=self.showlogoImg5)b.add_command(label='Dickies_logo', command=self.showlogoImg6)b.add_command(label='Jordan_logo', command=self.showlogoImg7)b.add_command(label='New balance_logo', command=self.showlogoImg8)b.add_command(label='Nike_logo', command=self.showlogoImg9)b.add_command(label='TheNorthFace_logo', command=self.showlogoImg10)b.add_command(label='Puma_logo', command=self.showlogoImg11)b.add_command(label='Supreme_logo', command=self.showlogoImg12)b.add_command(label='Vans_logo', command=self.showlogoImg13)b.add_command(label='UA_logo', command=self.showlogoImg14)b.add_command(label='FILA_logo', command=self.showlogoImg15)b.add_command(label='Stussy_logo', command=self.showlogoImg16)menu.add_cascade(label='词云形状类型', menu=b)c = Menu(menu)c.add_command(label='显示已生成的所有词云图', command=self.showlist)menu.add_cascade(label='生成的词云图', menu=c)#展示logo图片的方法def showlogoImg1(self):load = Image.open(r'D:\词云logo\Palace.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\Palace.png'def showlogoImg2(self):load = Image.open(r'D:\词云logo\阿迪达斯.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name=r'D:\词云logo\阿迪达斯.png'def showlogoImg3(self):load = Image.open(r'D:\词云logo\BAPE.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\BAPE.png'def showlogoImg4(self):load = Image.open(r'D:\词云logo\Champion.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\Champion.png'def showlogoImg5(self):load = Image.open(r'D:\词云logo\Converse.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\Converse.png'def showlogoImg6(self):load = Image.open(r'D:\词云logo\dickies.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\dickies.png'def showlogoImg7(self):load = Image.open(r'D:\词云logo\Jordan.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\Jordan.png'def showlogoImg8(self):load = Image.open(r'D:\词云logo\new balance.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\new balance.png'def showlogoImg9(self):load = Image.open(r'D:\词云logo\nike.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\nike.png'def showlogoImg10(self):load = Image.open(r'D:\词云logo\TheNorthFace.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\TheNorthFace.png'def showlogoImg11(self):load = Image.open(r'D:\词云logo\puma.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\puma.png'def showlogoImg12(self):load = Image.open(r'D:\词云logo\Supreme.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\Supreme.png'def showlogoImg13(self):load = Image.open(r'D:\词云logo\Vans.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\Vans.png'def showlogoImg14(self):load = Image.open(r'D:\词云logo\安德玛.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\安德玛.png'def showlogoImg15(self):load = Image.open(r'D:\词云logo\斐乐.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\斐乐.png'def showlogoImg16(self):load = Image.open(r'D:\词云logo\斯图西.png')render = ImageTk.PhotoImage(load)img = Label(self, image=render)img.image = renderimg.place(x=155, y=155)global type_logo_nametype_logo_name = r'D:\词云logo\斯图西.png'#将所选文本转化成词云的方法def typechange1(self):content = open("D:\词云文本\白夜行.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange2(self):content = open("D:\词云文本\放学后.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange2(self):content = open("D:\词云文本\放学后.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global tpye_logo_nameimage = PIL.Image.open(tpye_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#00FFFF", "#0000FF", "#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.show()def typechange3(self):content = open("D:\词云文本\红楼梦.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange4(self):content = open("D:\词云文本\活着.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange5(self):content = open("D:\词云文本\解忧杂货铺.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange6(self):content = open("D:\词云文本\罗生门.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange7(self):content = open("D:\词云文本\平凡的世界.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹'+"/"+type_logo_name[10:-4]+"词云图.jpg")plt.show()def typechange8(self):content = open("D:\词云文本\人间失格.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange9(self):content = open("D:\词云文本\射雕英雄传.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange10(self):content = open("D:\词云文本\水浒传.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange11(self):content = open("D:\词云文本\天龙八部.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange12(self):content = open("D:\词云文本\围城.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange13(self):content = open("D:\词云文本\西游记.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def typechange14(self):content = open("D:\词云文本\嫌疑人X的献身.txt", "r", encoding="utf-8").read()  # 读取文本文件cut_list = jieba.cut(content)  # 分词target_content = " ".join(cut_list)  # 将列表转为字符串,并以空格隔开global type_logo_nameimage = PIL.Image.open(type_logo_name)  # 加载图片MASK = np.array(image)  # 将图片转化为数组# 设置词云对象color = ["#FF0000","#FF7F00","#FFFF00","#00FF00","#00FFFF","#0000FF","#8B00FF"]colormap = colors.ListedColormap(color)WC = wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc',  # 微软雅黑字体路径 ‪C:\Windows\Fonts\msyh.ttc‬max_words=2000,mask=MASK,height=1000,width=1000,background_color='#F5F5F5',repeat=False,mode='RGBA',colormap=colormap)# 生成词云图片wc_image = WC.generate(target_content)plt.imshow(wc_image)plt.axis('off')plt.savefig('D:/词云保存文件夹' + "/" + type_logo_name[10:-4] + "词云图.jpg")plt.show()def showlist(self):window = tk.Toplevel()window.title('已经设计的词云图')window.geometry('800x400')photo = tk.PhotoImage(file=r"d:\def.png")label = tk.Label(window, image=photo)  # 图片label.pack()bu1 = tk.Button(window, text="删除图片", width=9,background="#1E90FF",foreground="white",activebackground="red",font=('黑体', 11, 'bold'),height=2,command=self.deliteaction)bu1.place(x=250,y=300)bu2 = tk.Button(window, text="显示图片", width=9,background="#1E90FF", foreground="white",activebackground="red",font=('黑体', 11, 'bold'),height=2,command=self.updateaction)bu2.place(x=400, y=300)txt=tk.Text(window,width=80, height=15,foreground="white",font=('宋体', 10, 'bold'),background="#d27ab7")for i in range(len(listdir('D:/词云保存文件夹'))):txt.insert(END,listdir('D:/词云保存文件夹')[i])txt.insert(END,"\n")txt.place(x=35,y=80)window.mainloop()def deliteaction(self):while(True):n = input("请输入你要删除的词云名称:")file_path = "D:/词云保存文件夹/" + nif(os.path.exists(file_path)):flag=messagebox.askokcancel('提示', '要执行此操作吗')if(flag):os.remove(file_path)messagebox.showinfo('提示', "词云图已经删除")breakelse:messagebox.showinfo('提示', "操作取消成功")breakelse:messagebox.showerror("提示",'词云图不存在,请重新输入')def updateaction(self):os.system("start explorer D:\词云保存文件夹")
root = Tk()
root.geometry("800x700")
app = Window(root)
root.mainloop()

具体实现后可视化界面如图所示

起始界面

小说菜单

生成词云图

对于已生成图片的删除操作

该生成器各核心知识的叙述

  1. 对于实现基本的输入与输出操作的要求;在弹窗中点击输入“删除图片”按钮,将会在终端下方,引导我们进行基本输入操作,而基本的输出操作在整个系统运作中均有体现,例如弹窗中文本框的内容显示等等。
  2. 对于实现处理异常,保证程序的健壮性的要求;在创建系统的可视乎窗口时,出于为了让界面更加美观,导致很多组件都要独立出来进行设计,但是一旦某个组件出现异常,将会导致整个可视乎界面无法展示,所以我在创建菜单、文本框、按钮、窗体等等一系列组件时候,我都有使用try-except语句进行插入,这样可以保证整体的系统界面不会因为某个组件的异常,而导致整个界面无法显示,并且except的内容里面添加print语句,这样就可以清晰地知道哪个组件出现异常,从而可以快速地进行调整和修改。
  3. 对于实现代码的复用性的要求;我在设计该系统代码时,碰到了一个问题,就是当我们设计窗口时,想要将自己的图片设计成弹窗背景时,可以使用tkinter的photoimage方法,但是这个方法有个问题就是只能使用一次,而如果不使用这个方法,想要多次实现自定义窗口背景,此时就要使用标签组件,将图片导入标签,然后根据窗口调整标签的大小形状等等,过程和代码都十分复杂,所以通过查阅资料使用Toplevel方法可以进行photoimage的再次使用,除此之外在整个系统代码中也有使用global来体现全局变量的知识,省去了定义多个变量名称的操作。
  4. 对于实现处理的数据要能够保存在文件中便于查看的要求;当通过本词云定制器生成一张词云图时,将会自动保存在我先前创建好的路径 “D:\词云保存文件夹”中,以便我们之后实现对于词云图的查找和删除工作。

可能会由于我说明不够详细所以我将附上该项目的演示视频供各位参考------详见我的主页上传的资源谢谢!

基于python语言设计的词云定制器相关推荐

  1. 对南京地铁计价模型分析及最佳路径设计基于Python语言

    离散数学技术报告(该报告不完整) 实验题目:对南京地铁计价模型分析及最佳路径设计基于Python语言 关键词: 城市交通; 地理信息系统; Dijkstra算法; 约束条件; 路径分析 一.引言 截至 ...

  2. 基于Python语言的PUBG游戏数据可视化分析系统

    [success]写于2019年大作业[/success] 博客链接:https://www.iamzlt.com/?p=299 代码链接请到博客链接内查看. 摘要 随着网络技术的兴起和普及,网络游戏 ...

  3. 大学计算机课程报告python_基于python语言和数据分析的大学公共计算机课程方案...

    基于 python 语言和数据分析的大学公共计算机课程方案 云太真 [期刊名称] <电脑知识与技术> [年 ( 卷 ), 期] 2018(014)025 [摘要] 目前的大学公共计算机课程 ...

  4. [学习笔记]黑马程序员Spark全套视频教程,4天spark3.2快速入门到精通,基于Python语言的spark教程

    文章目录 视频资料: 思维导图 一.Spark基础入门(环境搭建.入门概念) 第二章:Spark环境搭建-Local 2.1 课程服务器环境 2.2 Local模式基本原理 2.3 安装包下载 2.4 ...

  5. livechart 只显示 y 值_基于Python语言的SEGY格式地震数据读取与显示编程

    敬请关注<地学新视野> 摘要:本文简单介绍了SEG-Y地震数据文件格式,以及如何用Python语言编写读写SEG-Y格式的地震数据并绘制地震剖面,其中用到了Segyio和matplotli ...

  6. 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)

    原标题:基于Python语言的自动化测试实战第二章(上) 测试环境搭建 2.1 Windows 下的环境搭建 如果想要学习一门编程语言,对于新手来说只需到其官方网站上去下载最新版本安装即可,但对于想要 ...

  7. python基于什么语言-一种基于Python语言的EDA开发平台及其使用方法与流程

    本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...

  8. python写web自动化_Web接口开发与自动化测试——基于Python语言

    目 录∣ V 目 录 第1 章 Python 学习必知 ........................................................................ ...

  9. python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程

    本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...

  10. jemeter python接口自动化测试平台_WEB接口开发与自动化测试基于PYTHON语言PDF_Python教程...

    资源名称:WEB接口开发与自动化测试 基于PYTHON语言 PDF 内容简介: <Web接口开发与自动化测试--基于Python语言>以接口测试为主线,以Web开发为切入点,全面介绍了We ...

最新文章

  1. ACM 配置中心实战:Spring + MyBatis + Druid + ACM
  2. 编程学习记录12:Oracle数据库的一些基本操作2,表相关操作,添加约束
  3. Leet Code OJ 118. Pascal's Triangle [Difficulty: Easy]
  4. 文献记录(part12)--Biclustering of human cancer microarray data using co-similarity based co-clustering
  5. LeetCode 1024. 视频拼接(动态规划/贪心)
  6. 使用阿基米德螺线进行数据可视化
  7. 实战爬虫-爬取红袖添香并存入数据库
  8. 春运渡劫?Python 帮你 12306 抢回家的火车票!
  9. 加工中心计算机编程自学,自学加工中心编程(简单易学)图文讲解
  10. 阿贝尔分部求和法的应用(二)
  11. 定语从句中的关系代词
  12. 元宇宙:不透明面纱下的“康德主义”
  13. Kotlin使用高阶函数实现多方法回调
  14. 15.内置函数,匿名函数
  15. 【圣诞节限定】教你用Python画圣诞树,做个浪漫的程序员
  16. conversion failed: could not load input document
  17. 信息学奥赛一本通例题2.5~2.7
  18. 评价网络舆情系统的eCIA方法---灵玖网络舆情
  19. 绘画系统的简单实现(p5.js)
  20. RESTFUL风格规范

热门文章

  1. 前端开发工程师学习路线图(收藏版)
  2. 第三方Android应用商店也有安全问题
  3. Python下载qq音乐歌曲实例教程
  4. 圣剑传说 玛娜传奇(Legend of Mana)(LOM)全防具取得方法
  5. Your application has presented a UIAlertController (UIAlertController: 0x100b79
  6. 九、【服务器】服务器硬件名称中英文汇总2
  7. photoshop抠图与相框的制作
  8. html tbody接收数据,html tbody标签怎么用
  9. 6.WIN10 short cut
  10. POJ 4001 xiangqi(模拟)