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

如何用Python统计文本文件中以B开头且不含DUMMY的行数

统计以"B"开头且不含"DUMMY"的文本行数(Python实现)

需求场景

待处理的文本文件内容:

ADUMMY ADDRESS1
BDUMMY MEMBER
AA1400 EL DORA RD
BCARLOS
A509 W CARDINAL AVE
BJASMINE

需要编写Python脚本,统计其中**以"B"开头但不包含子串"DUMMY"**的行数。

现有代码问题

你当前的代码仅判断了行是否以"B"开头,缺少排除包含"DUMMY"子串的逻辑,需要在if条件中补充过滤规则。

修改后的代码

def countLinesMD(folder, f):
    counter = 0
    # 使用with语句自动管理文件资源,无需手动关闭
    with open(folder + f, "r") as file:
        # 逐行读取文件,节省内存且处理更高效
        for line in file:
            # 去除行首尾的空白字符(包括换行符),避免空行干扰
            stripped_line = line.strip()
            # 同时满足两个条件:以"B"开头,且不包含"DUMMY"
            if stripped_line.startswith("B") and "DUMMY" not in stripped_line:
                counter += 1
    return counter

关键说明

  • 核心过滤逻辑:通过stripped_line.startswith("B") and "DUMMY" not in stripped_line同时满足开头要求和排除规则
  • 文件安全处理:with语句会在代码块结束后自动关闭文件,避免资源泄漏
  • 空行规避:strip()去掉行尾换行符和前后空白,防止文件末尾的空行被误统计
  • 内存优化:逐行读取比一次性读入整个文件再拆分更适合大文件,减少内存占用

测试上述代码,针对你提供的文本会返回2(对应BCARLOS和BJASMINE两行),符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:10:34