如何提取.txt文件中特定关键词前的行并赋值给变量
解决从TXT提取行到关键词并存入变量的问题
嘿,我懂你遇到的小麻烦啦!能成功打印出目标行却没法把它们存进变量,本质上是你之前的代码只做了临时输出,没有把这些行内容收集到一个容器里。咱们来把代码调整一下,轻松搞定这个问题~
先看看你可能的原始代码(只打印不收集)
大概率你之前的代码是类似这样的,只做了打印操作,没存储:
with open('your_file.txt', 'r', encoding='utf-8') as f: for line in f: if '你的关键词' in line: break print(line.strip()) # 仅打印,未存入变量
方案1:用列表存储每行(灵活易处理)
如果之后还需要单独操作每一行内容,用列表来存储是最优选择:
# 初始化一个空列表,作为存储目标行的容器 target_lines = [] with open('your_file.txt', 'r', encoding='utf-8') as f: for line in f: # 遇到关键词就停止循环 if '你的关键词' in line: break # 把每行内容(可以去掉首尾换行/空格)加入列表 target_lines.append(line.strip()) # 现在target_lines就是存储了所有目标行的变量啦! # 查看变量内容 print(target_lines) # 如果需要转成整段字符串: target_text = '\n'.join(target_lines) print(target_text)
方案2:直接拼接成整段字符串
如果不需要单独处理每行,只想得到一段完整的文本,直接用字符串拼接更省事:
# 初始化空字符串 target_text = '' with open('your_file.txt', 'r', encoding='utf-8') as f: for line in f: if '你的关键词' in line: break # 把每行拼接到字符串中 target_text += line # 现在target_text就是存好的完整文本变量 print(target_text)
小提示
- 如果你的关键词可能出现在行的中间,而不是整行匹配,上面的判断逻辑依然有效;
- 如果想要把包含关键词的那一行也存入变量,只需要把
break语句放到append或者字符串拼接之后就行; - 记得加上
encoding='utf-8'避免中文乱码问题哦~
内容的提问来源于stack exchange,提问作者O. Schultz
相关产品推荐
相关产品推荐

