如何使用Python读取文本文件,提取Keywords至Abstract间的关键词到列表?
解决Python文本文件中关键词提取的问题
这是个很典型的文本解析场景,我来分享下我常用的实现思路和代码,完全符合你的需求:
实现步骤拆解
- 第一步:读取文件内容
用Python的with open上下文管理器读取,既安全又能自动关闭文件,避免资源泄漏。 - 第二步:定位关键词所在的文本段
我们需要把Keywords之后、Abstract之前的那段文本单独拎出来——用字符串的split方法就能轻松实现,先按Keywords分割取后半部分,再按Abstract分割取前半部分。 - 第三步:拆分关键词
因为分隔符是逗号(,)和分号(;)的组合,用正则表达式的re.split来匹配这两种符号是最灵活的方式,能处理任意组合的分隔情况。 - 第四步:清洗数据
拆分后可能会有多余的空格或者空字符串(比如连续分隔符的情况),用strip()去除空格,再过滤掉空元素就得到干净的列表了。
完整代码示例
import re def extract_keywords(file_path): # 读取文件内容 with open(file_path, 'r', encoding='utf-8') as f: content = f.read() # 定位Keywords到Abstract之间的文本 try: # 先拆分出Keywords之后的内容 after_keywords = content.split('Keywords')[1] # 再拆分出Abstract之前的内容 keyword_text = after_keywords.split('Abstract')[0].strip() except IndexError: # 如果Keywords或Abstract不存在,返回空列表 return [] # 用正则拆分关键词,匹配逗号或分号 raw_keywords = re.split(r'[;,]', keyword_text) # 清洗数据:去空格+过滤空字符串 cleaned_keywords = [key.strip() for key in raw_keywords if key.strip()] return cleaned_keywords # 调用示例 keywords_list = extract_keywords('your_file.txt') print(keywords_list) # 输出: ["key1", "key2", "key3", "key4"]
额外说明
- 代码里加了
try-except块,用来处理文件中没有Keywords或Abstract的情况,避免程序崩溃; - 正则表达式
r'[;,]'表示匹配逗号或分号中的任意一个,不管它们怎么组合都能正确拆分; - 最后列表推导式的清洗步骤很重要,能处理比如
key1; key2,,key3这种带多余空格或连续分隔符的情况。
内容的提问来源于stack exchange,提问作者mihika
相关产品推荐
相关产品推荐

