文本文件条目计数问题:含ADALIMUMAB的行仅计为一个条目
解决统计包含指定术语的行数问题
嘿,我懂你的困扰了——你需要统计包含ADALIMUMAB的行数(条目数),而不是这个术语在文件里的总出现次数,对吧?你之前的代码用了data.count("ADALIMUMAB"),这个方法会把每一个出现的ADALIMUMAB都算一次,比如示例里的第二行有两个ADALIMUMAB,就会被计为2,但你要的是只要行里存在这个术语,就只算1个条目。
正确的解决方案:逐行检查计数
我们可以逐行读取文件,对每一行判断是否包含目标术语,只要包含就给计数器加1,这样就完全符合你的规则了。代码示例如下:
# 初始化计数器 adalimumab_entries = 0 # 使用with语句自动管理文件(推荐写法,无需手动关闭) with open("DRUG14Q3.txt", "r") as drug_file: # 逐行遍历文件 for line in drug_file: # 检查当前行是否包含ADALIMUMAB(大小写敏感,如需忽略可以调整) if "ADALIMUMAB" in line: adalimumab_entries += 1 print(f"符合条件的条目数:{adalimumab_entries}")
为什么这个方法有效?
- 精准匹配规则:不管一行里ADALIMUMAB出现多少次,只要
"ADALIMUMAB" in line为True,计数器就只加1,完美实现你要的“一行一计数”逻辑。 - 内存友好:如果你的文件很大,
read()会把整个文件加载到内存里,而逐行遍历只会在内存中保留当前行,避免内存占用过高。 - 安全可靠:
with语句会自动帮你关闭文件,不用手动调用close(),避免忘记关闭文件导致的资源泄漏问题。
额外小提示
如果需要忽略大小写(比如行里出现adalimumab或者Adalimumab也需要统计),可以把判断条件改成:
if "ADALIMUMAB" in line.upper():
内容的提问来源于stack exchange,提问作者Stephen Lee
相关产品推荐
相关产品推荐

