从txt文件中抽取含有多个特定关键词的句子,并保存到txt文件,直接写python代码
时间: 2023-02-05 18:15:25 浏览: 50
可以使用 Python 的 `re` 模块来实现这个功能。下面是一个示例代码:
```
import re
# 要抽取的关键词列表
keywords = ['keyword1', 'keyword2', 'keyword3']
# 将关键词列表转换为正则表达式
pattern = '|'.join(keywords)
# 读取源文件
with open('source.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
# 抽取包含关键词的句子
sentences = []
for line in lines:
if re.search(pattern, line):
sentences.append(line)
# 将抽取的句子保存到新文件
with open('result.txt', 'w', encoding='utf-8') as f:
f.writelines(sentences)
```
上面的代码首先读取 `source.txt` 文件中的所有行,然后使用正则表达式搜索包含关键词的行,最后将所有匹配的行保存到新文件 `result.txt` 中。
需要注意的是,上面的代码只能抽取单独一行中包含所有关键词的句子。如果希望抽取跨越多行的句子,则需要使用更复杂的方法。
相关问题
从长文本中抽取含有多个特定关键词的句子,并保存到txt文件,直接写python代码
好的,这里是一个例子,你可以用它来从长文本中抽取含有多个特定关键词的句子,并将这些句子保存到txt文件中:
```python
import re
# 要抽取的关键词列表
keywords = ['关键词1', '关键词2', '关键词3']
# 要抽取的长文本
text = '''
这里是长文本,它可能包含多个句子。每个句子可能包含多个关键词。
我们希望抽取所有包含多个关键词的句子。
'''
# 使用正则表达式来匹配所有句子
sentences = re.findall(r'[^。!?]*[。!?]', text)
# 遍历所有句子,如果句子中包含多个关键词,就将其保存到txt文件中
with open('output.txt', 'w', encoding='utf-8') as f:
for sentence in sentences:
# 统计句子中包含的关键词数量
count = 0
for keyword in keywords:
if keyword in sentence:
count += 1
# 如果句子中包含多个关键词,则将其保存到txt文件中
if count >= 2:
f.write(sentence + '\n')
```
在上面的代码中,我们使用了正则表达式来匹配所有句子,然后遍历所有句子,统计句子中包含的关键词数量。如果句子中包含多个关键词,就将其保存到txt文件中。
希望这个例子对你有帮助。
从doc文件中抽取含有多个特定关键词的句子,并保存到txt文件,直接写python代码
可以使用Python中的docx模块来读取doc文件,然后遍历文件中的所有段落,并检查是否包含所需的关键词。如果是,则将该段落写入txt文件。这是一个示例代码:
```
import docx
# 打开doc文件
doc = docx.Document("file.docx")
# 创建txt文件
txt_file = open("output.txt", "w")
# 遍历所有段落
for para in doc.paragraphs:
# 检查是否包含关键词
if "关键词1" in para.text or "关键词2" in para.text:
# 将段落写入txt文件
txt_file.write(para.text)
# 关闭txt文件
txt_file.close()
```
在这个示例中,我们检查每个段落是否包含"关键词1"或"关键词2"。如果是,则将该段落写入txt文件。你可以替换这些关键词为你想要的任何关键词。