工作中碰到这样一个情况:有多个关键词存在文本文档txt中,想查找下在某个较大的word文档中,这些关键词是否都含有,没有关键词的显示出来。
因为关键词比较多,并且这个工作还是经常会有的,这个情况我试着用Python3写代码解决。
分析后,需要用到的模块有:docx,另外还有txt文档的读取和字符串的匹配。
首先是安装docx模块 pip install python-docx
具体实现代码如下:
import docxpath = "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
原文地址:https://www.cnblogs.com/jintianniu/p/11612019.html
时间: 2024-10-07 03:36:41