整体要实现的效果
写给闺蜜的小程序,主要实现了QQ聊天记录的统计词云,3D相册,烟花效果,考虑到对方没有运行环境,打包成.exe直接运行。
- 聊天词云
- 相册特效(参考:(230条消息) 超简单:很火的3D立体动态相册,送给心爱的那个人_蒙奇Dpzp的博客-CSDN博客)
- 烟花(参考:(230条消息) 3D动态烟花--HTML_缘起指尖的博客-CSDN博客_html烟花代码)
实现过程
聊天词云
1.正则处理聊天信息
(1)
字符 | 功能 |
---|---|
. | 匹配任意字符除了\n |
[] | 匹配[]中列举的字符 |
\d | 匹配0-9的数字 |
\D | 匹配不是数字的字符 |
\s | 匹配空格\tab |
\S | 匹配非空白符 |
\w | 匹配单词,a-z,A-Z,0-9,_ |
\W | 匹配非字符串 |
* | 匹配前一个字符出现0次或者无限次 |
+ | 匹配前一个字符出现1次或者多次,直到出现一次 |
? | 匹配前一个字符出现一次或者0次 |
{m} | 匹配前一个字符出现m次 |
{m,} | 匹配前一个字符至少出现m次 |
{m,n} | 匹配前一个字符出现m到n次 |
(2)re.compile
re.sub()
(3)词云制作
工具:导入库pip install ---- -i -------,用到的库:jieba,wordcloud,pillow,matplotlib
import re
import webbrowser
from wordcloud import WordCloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba
import socket
# 处理数据
str = open(r'D:\\编程学习\\html\\玉惠.txt', 'r', encoding='utf-8').read()
s = re.compile('2022.+玉惠|2022.+骁|2021.+玉惠|2021.+骁|2022.+WSY|2021.+上帝不掷骰子|表情|图片') # 编写正则表达式
flag = re.sub(s, '', str) # 替换对应的字符串为空字符串
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~,。、 :':
flag = flag.replace(ch, "") # 将文本中特殊字符替换为空格
f = open(r'D:\\编程学习\\html\\数据备份.txt', 'w', encoding='utf-8')
f.write(flag)
f.close()
f1 = open(r'D:\\编程学习\\html\\数据备份.txt', 'r', encoding='utf-8')
f2 = open(r'D:\\编程学习\\html\\备份.txt', 'w', encoding='utf-8')
try:
for line in f1.readlines():
if line == '\n':
line = line.strip("\n")
f2.write(line)
finally:
f1.close()
f2.close()
# 词云制作
test = open(r'D:\\编程学习\\html\\备份.txt', 'r', encoding='utf-8').read()
test = ' '.join(jieba.cut(test))
mask = np.array(Image.open("D:\\编程学习\\html\\爱心.jpg")) # 使用蒙版图片
wc = WordCloud(mask=mask, font_path="C:\\Windows\\Fonts\\simhei.ttf", mode="RGBA",
background_color=None).generate(test)
# 显示词云
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()
# 保存到文件
wc.to_file("D:\\编程学习\\html\\爱心1.png")
打包python为.exe
1.安装pyinstaller(pip install pyinstaller -i 国内镜像)
国内镜像:
阿里云
https://mirrors.aliyun.com/pypi/simple
豆瓣
https://pypi.douban.com/simple
清华大学
https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple
2.pyinstaller -w -F ---.py
参数 | 格式 | 作用 |
-F | pyinstaller -F ---.py | 只在dist中产生一个demo.exe文件 |
-D | pyinstaller -D ---.py | 默认选项,除了demo.exe外,还会在dist中生成很多依赖文件 |
-w | pyinstaller -w ---.py | 只对window有效,不使用控制台 |
-p | pyinstall -p 路径\--.py | 设置导入路径,比较少用 |
-i | pyinstaller -i ---.py | 将file.icon设置为exe文件的图标,推荐网站:icon |
-c | pyinstaller -c demo.py | 默认选项,只对Windows有效,使用控制台,就像编译运行C程序后的黑色弹窗 |
3.出现的错误
换成pyinstaller -c -F --.py
又出现问题
修改程序出现的问题再转exe
最后完成了!