zoukankan      html  css  js  c++  java
  • 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 ' '.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'wlineconw')
    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
     
  • 相关阅读:
    C++多态的实现原理
    C++编程之面向对象的三个基本特征
    C/C++中static关键字详解
    C/C++中static关键字作用总结
    Linux防CC攻击脚本
    linux下防火墙iptables原理及使用
    linux下使用 TC 对服务器进行流量控制
    awr报告与statspack报告
    awr报告
    statspack报告
  • 原文地址:https://www.cnblogs.com/jintianniu/p/11612019.html
Copyright © 2011-2022 走看看