import re
# 定义文本和关键词
with open('file1.txt', 'r') as f:
text = f.read()
with open('file2.txt', 'r') as f:
text = f.read()
with open('file3.txt', 'r') as f:
text = f.read()
keyword = "keyword"
# 使用正则表达式查找所有含有关键词的句子
pattern = r'[^.]*' + keyword + r'[^.]*'
sentences = re.findall(pattern, text)
# 打印结果
print(sentences)
如果我想批量匹配多个关键字(超过10个,且分行保存在keyword.txt中),将匹配的关键字关键句保存在result.docx中,且关键字高亮,我该如何修改代码?
读取word需要 python-docx 等专门的库,不能用 open 直接打开。
不知道你这个问题是否已经解决, 如果还没有解决的话:首先,我们需要读取关键字文件(keyword.txt)中的关键字,并将其保存在一个列表中。接下来,我们需要打开待处理的文档(result.docx),并读取其中的内容。然后,我们可以使用Python的字符串处理功能,比如正则表达式,来匹配关键字并进行高亮显示。最后,我们将匹配到的关键句保存到result.docx文档中。
下面是实现该功能的代码示例:
import re
from docx import Document
# 读取关键字文件
keyword_list = []
with open('keyword.txt', 'r') as file:
keyword_list = file.read().splitlines()
# 打开待处理的文档
document = Document('result.docx')
# 遍历文档的段落
for paragraph in document.paragraphs:
# 匹配关键字并进行高亮显示
for keyword in keyword_list:
# 使用正则表达式进行匹配
pattern = re.compile(r'\b' + keyword + r'\b')
matches = re.finditer(pattern, paragraph.text)
# 遍历匹配结果,并进行高亮显示
for match in matches:
# 创建一个新的Run对象,并设置高亮颜色
run = paragraph.add_run()
run.text = match.group()
run.font.highlight_color = WD_COLOR_INDEX.YELLOW
# 保存修改后的文档
document.save('result.docx')
请注意,该代码需要python-docx
包和docx
包,你可以使用下述命令安装它们:
pip install python-docx
pip install docx
如果你没有安装pip,你可以参考这个链接来安装它。
此外,请确保你的keyword.txt文件和result.docx文件与代码在同一目录下。如果不是,请修改相关文件路径。
希望这个解决方案能够帮到你!如果你有任何问题,请随时提问。