python3在word文档中查找多行文字是否存在

Posted 金天牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3在word文档中查找多行文字是否存在相关的知识,希望对你有一定的参考价值。

工作中碰到这样一个情况:有多个关键词存在文本文档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

解决办法参考blog:https://www.cnblogs.com/wrajj/p/4914102.html


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

以上是关于python3在word文档中查找多行文字是否存在的主要内容,如果未能解决你的问题,请参考以下文章

Word文档中如何增加多行文字水印?求解答

如何在word中添加多行水印

word怎么批量替换文字

Word已存文档中,将原有内容的字体,字号作相应改变,加标题,插入,替换某符号等word文档中怎么替换步骤

word 如何批量替换

在word中怎么将指定文字替换成艺术字