import re
with open('keyword.txt', 'r') as file:
keyword = [word.strip() for word in file.readlines()]
with open('file.txt', 'r') as file:
article = file.read()
unmatched_keywords = []
for word in keyword:
pattern = re.compile(fr'\b{re.escape(word)}\b')
match = re.search(pattern, article)
if match:
article = re.sub(pattern, f"<b>{match.group()}</b>", article, count=1) #注意这里!!!
else:
unmatched_keywords.append(word)
print(article)
with open('unmatched_keywords.txt', 'w') as file:
for word in unmatched_keywords:
file.write(word + '\n')
一段代码,批量匹配关键词加粗,同时生成unmatched_keywords文件,用于储存未匹配的关键词;
如果想要将关键词所在的句子重新保存在一个新的txt文件中,应该怎么修改?
print(article)
->
with open("new.txt", "w") as file:
file.write(article)
不知道你这个问题是否已经解决, 如果还没有解决的话:根据问题的描述,你想要修改代码的哪个部分来将关键词所在的句子重新保存在一个新的txt文件中,但是问题描述中并没有提到关键字是什么以及想要保存的句子来源于哪个文件。所以在这里假设你想要从某个txt文件中提取特定的关键字所在的句子,并将这些句子保存在一个新的txt文件中。
首先,我们需要读取原始的txt文件,并将每行作为一个元素存储在一个列表中。这可以通过使用open()
函数和readlines()
方法来实现。代码如下:
with open('file.txt', 'r') as f:
lines = f.readlines()
接下来,我们可以遍历列表中的每个元素,使用字符串的find()
方法来查找关键字所在的句子。如果找到了关键字,我们将该句子添加到一个新的列表中。代码如下:
keyword = "your_keyword"
keyword_sentences = []
for line in lines:
if keyword in line:
keyword_sentences.append(line)
最后,我们可以将保存有关键字句子的列表写入一个新的txt文件中。使用open()
函数和writelines()
方法,可以将列表中的内容逐行写入txt文件。代码如下:
with open('keyword_sentences.txt', 'w') as f:
f.writelines(keyword_sentences)
至此,你应该通过修改以上代码中的关键字和txt文件名,就能够实现将关键词所在的句子重新保存在一个新的txt文件中了。
请注意,以上是一种简单的实现方式,实际中可能会有其他需求或者是更复杂的情况,你可以根据实际情况进行调整和修改。
希望以上回答能帮到你,如果你对我的回答还有任何疑问,请随时追问。