自动化办公处理word:提取文档指定标题并另存为txt
原创
©著作权归作者所有:来自51CTO博客作者Aclous的原创作品,请联系作者获取转载授权,否则将追究法律责任
一背景
一位同学需要处理上千个文档,并将每个文档中的文件编号和标题
同学手动将文档copy到一个文件中,准备手工提取 文件编号和标题, 后希望我帮忙自动提取出来。于是,我写了一个脚本,以自动提取 文件编号和标题,然后我将其存到txt中。
需求如下:
文档内容截图如下:
二代码
经过观察发现待提取内容均包含 酒文
# coding:utf-8
from docx import Document
file = Document("dangwei.docx") #待提取的文档
######提取字符 ######
result = []
for i in range(0,len(file.paragraphs)):
result_str=''
if '酒政' in file.paragraphs[i].text or '酒文' in file.paragraphs[i].text: #如果当前行中存在酒政或者酒文,进行当前行提取,和后面几行标题的提取
result_str = result_str + file.paragraphs[i].text #酒政/文 的提取
i = i + 1
#判断是否空格或者回车等,忽略掉,直到标题内容
while file.paragraphs[i].text.replace(' ', '') == file.paragraphs[i+1].text.replace(' ', ''):
i = i + 1
if i >= len(file.paragraphs):
break
#提取标题内容
while len(file.paragraphs[i+1].text.replace(' ', '')) != 0:
result_str = result_str + file.paragraphs[i+1].text
i = i + 1
if i >= len(file.paragraphs):
break
if i >= len(file.paragraphs):
break
result.append(result_str) # 标题的提取并保存
######去除结果中指定的字符,如空格#######
result_new = []
for i in result:
result_new.append(i.replace(' ', '')) #去除结果中的空格
print(result_new) #最终结果result_new
#######结果写入指定txt文档,如 2022政府合并.txt########
f = open("2022党委合并.txt", "w", encoding="utf-8")
for line in result_new:
f.write(line + '\n')
f.close()
三总结
由于同学之前手动将上千个文档放到一个文档里,这步工作也可以通过遍历如os库,将各个文档分别处理,实现全部自动化。
最后:
再帮剁手!
本文除了为相关工作人员提供代码思路,减少工作量外,还希望各行各业的工作人员和爱好者业余学习一下代码,武装自己,减少苦力劳动,提高效率。
四 附
待提取word文档:
(由于是资料特殊,担心涉及太多,故以下内容经过删减)
酒文〔2022〕48号
中员会
关于成立安全隐患排查整治专项行动工作领导小组和工作专班的通知
各行政村、镇直有关单位:
安全生产事关人民群众生命财产安全,事关市、县自建房安全专项整治会议精神
2022年5月8日
酒后镇党建工作办公室 2022年5月8日印
酒文〔2022〕49号
中共后镇委员会
关于调态化工作领导小组的
通 知
各行政村、镇直各单位:
为切实加强扫黑除恶常态化各项工作,经镇党委研究决定,对扫黑除恶常态化工作领导小组进行调整,成员如下:
组