You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何筛选输出txt文件中包含指定关键词的行

代码问题点

你写的代码存在两个逻辑错误,是运行无输出的核心原因:

  • s.readlines()会一次性读取文件所有内容,返回由每行文本组成的列表。'still' in s.readlines()的判断逻辑是「列表中是否存在值完全等于'still'的元素」,也就是只有某行整行内容只有'still'这几个字符时才会判定为匹配,和你需要的「行内包含指定词汇」的需求不符。
  • 文件读取存在指针机制,第一次调用s.readlines()读完所有内容后,指针会停在文件末尾,第二次调用s.readlines()时读不到任何内容,即便前面的判断碰巧命中,打印结果也是空值。
正确实现方式

不需要一次性把所有内容读进内存,直接逐行遍历文件、逐行判断关键词即可,逻辑简单内存占用也更低:

target_word = 'still'
# 打开文件时指定encoding是为了避免中文乱码,可根据自己文件的实际编码调整
with open('song.txt', 'r', encoding='utf-8') as file:
    for line in file:
        # 判断当前行是否包含目标词
        if target_word in line:
            # 用strip()去掉行首尾的空白、换行符,避免打印时出现多余空行
            print(line.strip())

小提示:如果运行时出现编码报错,可以把encoding='utf-8'改成encoding='gbk'再试,Windows系统下部分文本文件默认用gbk编码保存。

内容的提问来源于stack exchange,提问作者codingperson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 04:33:26