PyQT5下将微信接龙String转成Excel

  • Python文字处理
    • 文字切割
    • 电话号码提取
    • 生成excel表格
    • 结果
    • 软件截图
    • 工具连接
  • 20210819分割线....
    • 新需求
    • 方案1
    • 方案2
      • 可以结案了

Python文字处理

从技术角度出发,没有任何难度,只是一些python下基于固定规则对string的切割操作。但扬州疫情,我看群里不少老年人不会进行在线表格登记操作,只能通过微信接龙进行生活物资的团购。所以,为了降低工作人员的工作强度,贡献一点点小作用,就有了这个想法。

#接龙1. 21栋二单元1408
2. 14幢304 13222222222
3. 23 幢150813222222222
4. 19栋二单元1404 ,13222222222
5. 17-1703 一单元13222222222
6. 英16栋203. 13222222222
7. 14幢304 二单元 13222222222

文字切割

文字切割是进行文本关键信息提取分类的重要方式,一般使用split函数:

string.split(separator, maxsplit)

可以有2个有效参数:

  1. 第一个参数,separator,是我们要用来切割的基信息,一般我们用“ . / = + , ,。”等字符来进行切割
  2. 第二个参数,maxsplit,是我们要切割成几块,默认是有多少块切多少块。为什么要有这个呢?比如,在下面场景下,如果104.132222222222是一个有效数据,那么如果不限定切割块的个数,就会被分割出来,需要额外拼接动作。
a.split('.')
['26', ' 一切随缘 21幢104', '13222222222']
a.split('.', 2)
['26', ' 一切随缘 21幢104', '13222222222']
a.split('.', 1)
['26', ' 一切随缘 21幢104.13222222222']
a.split('.', 0)
['26. 一切随缘 21幢104.13222222222']

电话号码提取

为了方便联系,要提取电话信息,这里用到了re这个库,可以匹配13/14/15…开头的手机号码

def judge_phone_number(account):a = re.findall(r'(1[3|4|5|6|7|8|9]\d{9})', account)try:res = a[0]except:res = 0return res

生成excel表格

这里用到了StyleFrame,来对Pandas DF数据进行格式化
安装方式

pip install StyleFrame

具体使用介绍,可以点这个StyleFrame介绍参考
粗暴点,待会下去做核酸了,先直接贴代码了,有空再回来改改

df = pd.DataFrame(columns=[u'编号', u'用户', u'内容', u'电话号码', u'原信息,人工校准下'])
df.loc[0] = [int(no), usr, cont, phone_num, k[i]]
filt = "Excel(*.xlsx)"
fileName, ok = QFileDialog.getSaveFileName(None, "文件保存", os.getcwd(), filt)
# 这里开始是格式化,不使用pandas.ExcelWriter,没法很好的格式化
excel_writer = StyleFrame.ExcelWriter(fileName)
style_df = StyleFrame(df)
style_df.to_excel(excel_writer=excel_writer, best_fit=df.columns.to_list())
excel_writer.save()

结果

软件截图

本来几行代码就能搞定,但给物业用,得弄个界面。。。

工具连接

TBD
。。。喊做核酸了,先下楼了

20210819分割线…

新需求

今天第13轮次了,110打电话给我,我还以为12次了,会不会被带走啊。。
言归正传,好像也什么正。。。现在政府能力升级了,提供有各种套餐了。有豆制品,有本地扬大奶,有蔬菜,有肉。感谢。。。

#接龙
开始接龙,冷冻肉目前没有了,填写请按照格式填写,写明份数,不写默认是一份,手机号写在最后
例 11-902  30元蔬菜一份,132222222221. ZM
2. 8栋208 豆制品套餐一份。13222222222
3. 7-2单元-307  30元蔬菜一份,20元豆制品一份 13222222222
4. 8栋 8-303 30元蔬菜一份,20元豆制品一份,一箱酸奶 13222222222
5. 10栋1单元1204 蔬菜50元套餐一份,豆制品20元套餐一份,酸奶33元套餐一份 13222222222
6. 6幢9O3蔬菜5O元套餐,豆制品2O元套餐。13222222222
7. 11-1402 50蔬菜一份
8. 马爱华 葡桃一份:13222222222

虽然物业/志愿者虽然要求大家按照格式来,可是大家写的也是各种任性。
有把0写成O的
有不写手机号的
有要套餐外东西的

志愿者告诉我,这算好的了,还有人会对肉菜有要求,什么猪腿肉啊,什么只要XX菜啊,都写在上面。让信息提取超级不方便。。。

方案1

这时候,上面那种仅仅用split函数来拆分,已经不再合适了
所以,我们用re正则表达式匹配

# Tips
re.findall(r'(1[3|4|5|6|7|8|9]\d{9})', string)

表达式用法和表达式模式可以参照:传送门

     # 匹配 '30元蔬菜套餐3份'a = re.findall(r'(30\S+?(\d{1})份)', tmp)if len(a):c30 = int(a[0][1])s30 = a[0][0]# 匹配 '豆制品套餐3份'd = re.findall(r'(豆\S+?(\d{1})份)', tmp)if len(d):cdou = int(d[0][1])sdou = d[0][0]# 匹配 '酸奶套餐3份',因为有人喜欢写 扬大奶e = re.findall(r'([扬大|酸]奶(\d{1})份)', tmp)if len(e):cnai = int(e[0][1])snai = e[0][0]# 匹配 '肉套餐3份'f = re.findall(r'(肉\S+?(\d{1})份)', tmp)if len(f):crou = int(f[0][1])srou = f[0][0]

这种规则性编程,太累了。。。

方案2

制作,或者用现成的投票小程序。。。正在向他们推广

可以结案了

https://gitcode.net/-/snippets/1855

python微信接龙转Excel表格相关推荐

  1. 新技能 | 使用python代码来高效操作Excel表格 (文末赠书5本)

    新技能 | 使用python代码来高效操作Excel表格 (文末赠书5本) 在日常学习和工作中,少不了要跟Excel表格打交道.而我们作为程序猿,深知代码编程给人带来的便捷性,那我们怎么样使用代码来操 ...

  2. python怎么将txt转为excel_使用matlab或python将txt文件转为excel表格

    假设txt文件为: 一.matlab代码 data=importdata('data.txt'); xlswrite('data.xls',data); 二.python代码 利用pandas的Dat ...

  3. Python入门题031:excel表格筛选重复数据

    题目: 使用 pandas 筛选表格中的重复数据,将筛选后的表格保存到新的 excel 文件中. 视频教程: Python入门题031:excel表格筛选重复数据 代码: import pandass ...

  4. 计算营业额python代码_真香还是假香,Python处理分析128张Excel表格竟然不到3秒?| 附案例数据集...

    原标题:真香还是假香,Python处理分析128张Excel表格竟然不到3秒?| 附案例数据集 作者:吹牛Z 本文转自公众号:数据不吹牛 更新完Pandas基础教程,后台有不少旁友留言,想要了解怎么用 ...

  5. 【Python数据分析】利用Python快速对两个EXCEL表格进行内容比较并找出差异

    如何快速找到两个EXCEL表格的数据差异?今天就与大家分享如何利用Python数据分析3分钟搞定,不管EXCEL表格有多少行数据,代码总是那么几行.不多说了,上案例(文末附Python数据分析案例下载 ...

  6. Python读取Json字典写入Excel表格的方法

    需求: 因需要将一json文件中大量的信息填入一固定格式的Excel表格,单纯的复制粘贴肯定也能完成,但是想偷懒一下,于是借助Python解决问题. 环境: Windows7 +Python2.7 + ...

  7. python excel库 linux_用python写一个简单的excel表格获取当时的linux系统信息

    最近在学习excel表格的制作,顺便结合之前学习的内容,利用python的两个模板,分别是获取系统信息的psutil,和生成excel表格的xlsxwriter.利用这两个模板将生成一个简单的exce ...

  8. python追加写入数据到excel表格

    目录 一.脚本结构 二.使用的模块 三.脚本实现 1.实时信息的获取 2.数据的记录 最近几周的测试工作中,有一项内容是需要不断地从界面上获取信息,所以我研究了一下 " 利用接口先将信息获取 ...

  9. Python 处理分析 128 张 Excel 表格竟不到3秒?| 附数据集

    作者 | 周志鹏 责编 | 刘静 有不少旁友想要了解怎么用Python提升处理数据的效率,或者说怎么用Python自动处理多张Excel表格,于是乎便有了本文.这篇文章算是Python数据分析实战的第 ...

最新文章

  1. PCL基础3:点云程序运行时间计时
  2. php和js中,utf-8编码转成base64编码
  3. Keras【Deep Learning With Python】实现线性回归模型
  4. 获取radio和select的值,获取select的值
  5. 列表ListView和列表选择框的使用编写步骤
  6. 我那么拼命,为什么还会被裁掉?
  7. 分布式搜索引擎ElasticSearch(四) -- 插件使用
  8. 2020电信最新套餐一览表_最新!2020年宁波中学排名一览表
  9. matlab trplot2,一知半解|MATLAB机器人建模与仿真控制(2)
  10. 力扣 面试题 08.04. 幂集
  11. 记一次利用tomcat manager部署war包失败并解决的经历
  12. 华为Meta30 Pro怎么禁用系统更新
  13. 一些常用的电脑词汇解释
  14. matlab 龙格现象,利用MATLAB分析数值积分中的龙格(Runge)现象(1)
  15. uniapp网上商城排坑专业户
  16. 用JavaScript实现的简单Wizard
  17. Intellij IDEA2021.1创建Java web项目(超详细)
  18. 斯坦福计算机系课程内容,斯坦福计算机本科课程有哪些?
  19. struts新人培训1
  20. ToneLab for Mac(ps人像修图插件)支持ps2021

热门文章

  1. 总结了一些微信小程序推广方法
  2. reverse-for-the-holy-grail-350 攻防世界
  3. Django + mysql + 微信 抢票之本地环境搭建
  4. 2018腾讯秋招笔试题
  5. 【OpenCV】- 分水岭算法
  6. 南宁琅东的机器人餐厅_南宁埌东藏着一个秘密花园,每天一大波年轻男女进进出出…...
  7. 速率法和终点法的区别_两点法、终点法、速率法
  8. Numpy学习笔记(七)数学函数
  9. receptive field
  10. 5年Java面试阿里P6经验总结