Python统计文本文件指定字符串出现次数结果为0的问题求解
代码问题分析
你的代码存在4处核心错误,导致统计结果为0:
- 调用
in_file.readlines()后,文件对象的读取指针已经移动到文件末尾,后续for line in in_file循环读取不到任何内容,循环完全没有执行 - 判断逻辑混淆了变量:
d是你定义的计数变量,初始值为0,你写的if d in line是判断数字0是否存在于字符串行中,和你要匹配的目标字符/字符串完全无关 - 就算判断逻辑写对,当前逻辑只会统计「包含目标字符串的行数」,如果一行内目标字符串出现多次只会计数1次,无法统计总出现次数
- 打开的文件没有主动关闭,存在资源泄漏风险
修复后的代码示例
假设你要统计的目标字符串是target_str,可以直接按下方代码修改:
# 定义要统计的目标字符/字符串 target_str = "你要匹配的内容" count = 0 # 使用with上下文管理器自动处理文件关闭 with open("file_x.txt", encoding="utf-8") as f: for line in f: # 累加当前行内目标字符串的出现次数 count += line.count(target_str) print(count)
如果确实只需要统计包含目标字符串的行数,可以把累加逻辑改成:
if target_str in line: count += 1
内容的提问来源于stack exchange,提问作者Endre
相关产品推荐
相关产品推荐

