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
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM