python检索word文档_python3在word文档中查找多行文字是否存在

本文介绍了如何使用Python3的docx模块来检查一个较大的Word文档是否包含文本文档txt中的多个关键词。当遇到不包含的关键词时,程序会将其打印出来。在尝试过程中,原本计划使用re模块进行字符串匹配,但由于读取的docx内容带有格式,导致错误。最终采用了简单的字符串匹配方法实现功能。
摘要由CSDN通过智能技术生成

工作中碰到这样一个情况:有多个关键词存在文本文档txt中,想查找下在某个较大的word文档中,这些关键词是否都含有,没有关键词的显示出来。

因为关键词比较多,并且这个工作还是经常会有的,这个情况我试着用Python3写代码解决。

分析后,需要用到的模块有:docx,另外还有txt文档的读取和字符串的匹配。

首先是安装docx模块  pip install python-docx

具体实现代码如下:

import docx

path = "F:\\check\\source.docx"

def readDocx(docName): #创建读取doc文档内容的函数,去除格式

fullText = []

doc = docx.Document(docName)

paras = doc.paragraphs

for p in paras:

fullText.append(p.text)

return '\n'.join(fullText)

doccontent=readDocx(path)

textcon= open('F:/check/findtext.txt','r',encoding='utf-8') #只读方式打开text文件b

j=0 #用于显示txt文档中的行号

for i in textcon:

linecon=i.strip() #Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列

j=j+1

if linecon not in doccontent:

print(linecon)

print(j)

textcon.close()

写在后面的话:

1.查找字符串时,原计划用re函数匹配

compiletext=re.compile(r'\wlinecon\w')

result_comp = compiletext.findall(doccontent.paragraphs)

因读取docx时,是带格式的,结果使用re函数怎么运行都报错:TypeError: expected string or bytes-like object

2.字符串的匹配,原来想用正则表达式中的函数来解决,结果试了半天,才发现字符串匹配有很简单的方式,详情见blog:https://www.cnblogs.com/huiAlex/p/7994606.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值