'''
#利用python查找word文档中的关键词,支持多个文档和多个关键词
'''
# 导入所需库
import os,re
from docx import Document
global ur
ur = "D:/test_doc" #全局变量读取输入路径
# key_word = '模糊查询' #全局变量读取关键字
def get_doc_path (path) :
file_list = os.listdir(path)
# 正则匹配路径下所有.docx结尾的文件
doc_list = [i for i in file_list if re.compile(r'\w+.docx').match(i)]
#拼接ur进入doc_list,获得完整路径
for i in range(len(doc_list)):
doc_list[i] = ur + '/' + doc_list[i]
return doc_list
#以段落为单位切片,并查找关键字
def find_text (path,word):
document = Document(path)
all_paragraphs = document.paragraphs
list1 = []
for paragraph in all_paragraphs:
str1 = paragraph.text
if str1.find(word) != -1 :
list1.append(str1)
if list1 == [] :
list1.append('未找到关键字')
return list1
# else:print('notfind')
#获取路径下txt中的关键字并返回一个list
def read_keyword (add) :
with open(add+'/key_word.txt',encoding='utf=8') as f :
key_word = f.readlines()
for i in range(len(key_word)) :
key_word[i] = key_word[i].strip()#去除换行符
return key_word
key_word = read_keyword(ur)
print(key_word)
doc_path = get_doc_path(ur)
print(doc_path)
list_word = []
document = Document()
for x in doc_path :
document.add_heading(x,level=1)
for i in key_word :
document.add_paragraph(i , style='Intense Quote')
for num in range(len(find_text(x,i))):
no = num+1
str(no)
str1 = 'NO.' + str(no)
document.add_paragraph(str1)#添加标号
document.add_paragraph(find_text(x,i)[num])#写入正文
document.save(ur + '/result.docx')
利用python在word文档中查找关键字(支持多个文档和多个关键字)
原文作者:Lordi_
原文地址: https://blog.csdn.net/weixin_44094825/article/details/120674206
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/weixin_44094825/article/details/120674206
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。