点击上方“Python共享之家”,进行关注

回复“资源”即可获赠Python学习资料

岭猿同旦暮,江柳共风烟。

大家好,我是皮皮。

一、前言

前几天在Python钻石交流群【Hxy任我肥】问了一个Python自动化办公的问题,提问截图如下:

想要的效果是下图这样的:

准确来说,这个都不算是问题了,而是一个实实在在的需求。

二、实现过程

这里【Jason】给了一个可行的思路,如下:

后来【瑜亮老师】给了一个具体的代码,如下所示:

import re
from docx import Document
import pandas as pddocument = Document("判断(括号处理)(1).docx")
all_paragraphs = document.paragraphs
data = [paragraph.text for paragraph in all_paragraphs if '√' in paragraph.text or '×' in paragraph.text]
data = ''.join(data)
res = re.findall('[√×]', data, re.S)
res = [f'{k + 1}.{v}' for k, v in enumerate(res)]
df = pd.DataFrame(res)
df.to_excel('test9-13.xlsx', index=False, header=None)

真的太强了!

代码运行之后可以得到预期的结果,如下图所示:

后来【狂吃山楂片】基于此代码,来了个简易版的,代码如下所示:

import re
from docx import Document
import pandas as pddocument = Document(r"判断(括号处理)(1).docx")
text = document.part.blob.decode('utf-8')text = re.sub(r'<.*?>', '', text)
text = re.sub(r'\.\s+', r'.', text)
df = pd.DataFrame(re.findall(r'\d+\.[√×]', text))
df.to_excel('result.xlsx', header=None, index=False)

这技术真是到家了,出神入化的。

代码运行之后,也完全可以实现这个需求。

后来【瑜亮老师】还给了一个代码,也非常赞,如下所示:

data = [paragraph.text for paragraph in all_paragraphs if '√' in paragraph.text or '×' in paragraph.text]
# 合并为一个长字符串,然后替换删除所有的空格
data = ''.join(data).replace(' ', '')
# 使用re正则表达式提取出所有含有题号的答案
res = re.findall(r'\d+\.[√×]', data, re.S)
df = pd.DataFrame(res)
df.to_excel('test9-13.xlsx', index=False, header=None)

真让人叹为观止!把多余的空格都替换删除,可以防止答案中含有空格而导致不能被正则r'\d+\.[√×]'匹配到,这样就一步到位了。不用再用列表推导式构造答案。

你以为这就完事了?

后来【甯同学】使用openpyxl库也搞定了,代码如下图所示:

import re
import docx
import openpyxl
def str_work(string:str):return [*filter(None,re.split('\.',re.sub('\d+','',string.replace(' ', '').replace('\n', ''))))]
wb = openpyxl.Workbook()
ws = wb.active
ws.append(['题目','答案'])
doc = docx.Document(r'C:\Users\Administrator\Desktop\判断(括号处理).docx')
doc_text = '\n'.join(( i.text for i in doc.paragraphs[3:]))
doc_list = doc_text.split('\n一、判断题')
title_row = [i.strip() for i in doc_list[0].split('\n') if i.strip().split('、')!=['']]
answer_row = [i for i in str_work(doc_list[1])]
for i in zip(title_row,answer_row):ws.append(list(i))
wb.save('1.xlsx')

运行之后得到的结果如下图所示:

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python自动化办公的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【Hxy任我肥】提问,感谢【Jason】、【瑜亮老师】、【狂吃山楂片】、【甯同学】给出的思路和代码解析,感谢【dcpeng】、【产后修复】、【此类生物】、【余克富】等人参与学习交流。

大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting),应粉丝要求,我创建了一些高质量的Python付费学习交流群,欢迎大家加入我的Python学习交流群!

有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

  • 盘点Python网络爬虫入门常见的一个问题

  • 盘点一个使用Python合并excel表格过程中遇到的一个小问题

  • 分享一个playwright网络爬虫实战教程

  • 手把手教你使用在线工具自动生成Python爬虫代码

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【

万水千山总是情,点个【在看】行不行

盘点一个Python自动化办公的实战案例相关推荐

  1. 盘点一个Python自动化办公实战案例

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 阳和不散穷途恨,霄汉长怀捧日心. ...

  2. Python自动化办公实战,上万数据中统计断网次数并计算平均断网时间

    文章目录 一.需求 二.python代码实现 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更 ...

  3. python自动化办公入门书籍推荐-盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  4. python自动化办公培训排名-盘点使用Python进行自动化办公所需要的知识点

    三军可夺帅也,匹夫不可夺志也. 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动 ...

  5. python自动化办公入门书籍-盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  6. python自动化办公都能做什么-盘点使用Python进行自动化办公所需要的知识点

    三军可夺帅也,匹夫不可夺志也. 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动 ...

  7. python自动化办公之爬取HTML图片写入PPT实战

    python自动化办公之批量图片导入PPT 昨天,大Boss找到一个网页,觉得里面的图片内容特别好,想把它下载下来作为学习资料,整理整理教导下属.但是,手动一张一张的保存图片太慢了,问我可不可以下载下 ...

  8. python自动化办公教程书籍_盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  9. python自动化办公脚本下载-python自动化脚本

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 运维自动化,已经成为运维必不可少的一部分,下面附上自己写的监控nginx_stat ...

最新文章

  1. 2017-2018-1 20155234《信息安全系统设计基础》第五周学习总结
  2. boost::type_index::type_id相关的测试程序
  3. Paxos在Chubby中的应用
  4. Identity Server 4 预备知识 -- OpenID Connect 简介
  5. CGAL4.4+VC2008编译
  6. 你要的六级成绩批量查询,它来啦......
  7. Linux中的Java类,Java基础入门学习-Java中类的属性
  8. C#:判断某个对象有没有某个键的方法
  9. Cadence Allegro学习之PCB封装库的导出
  10. 边缘检测——Roberts算子
  11. UE4(虚幻4) 教学网站等资源推荐
  12. GLASS数据批量下载
  13. matlab人口增长线性回归拟合_科学网—matlab线性拟合 - 张瑞龙的博文
  14. easyui中清空filebox的值
  15. 千兆路由器局域网速度怎么只有10M左右?
  16. JAVA 获取mac地址
  17. iOS 开发之调用系统铃声以及震动
  18. 纯英文拼音交流1声应该表示成0,要不就不知道怎么发音
  19. 十六进制颜色值 (美观必备 - 设置颜色)
  20. 扇贝python_扇贝编程(python)手机版-扇贝编程app下载v1.1.30-汉化新世纪

热门文章

  1. 飞思实验室,让无人智能科研更简单
  2. vue 自定义指令弹窗鼠标拖拽弹窗表头,弹窗移动
  3. gwas snp 和_gwas
  4. 网络热传App鉴定 |「得物」疑私删用户视频?从技术角度还原事件始末
  5. Unity——Animator动画分层
  6. 【机器学习】笔记内容002:贝叶斯算法(理论+实战)
  7. 网络访问之HttpURLConnection
  8. hph IIS配置问题
  9. 近三十年6000部国产电视剧告诉了我们些什么 | R爬虫可视化第四季
  10. ACL和RouteMap的permit和deny规则在路由重分配时的动作