如何通过循环在文件中搜索特定单词(支持多次匹配)
文件中指定单词的遍历搜索实现方法
需求说明
给定格式为单词:数字的文本文件(示例内容如下),需要遍历文件内容,找出所有包含指定单词的条目并输出。
示例文件内容:
jogging:1 swimming:1 running:1 breathing:1 riding:1 walking:1 jogging:2 seeing:1 seeking:1 looking:1 staring:1 practicing:1搜索
jogging时,预期输出:jogging:1 jogging:2
Python实现方案
方案一:使用for循环逐行处理
这是最常用的方式,借助with语句自动管理文件资源:
# 定义要搜索的目标单词 target = "jogging" # 替换为你的实际文件路径 file_path = "your_file.txt" with open(file_path, "r", encoding="utf-8") as file: # 逐行遍历文件内容 for line in file: # 分割每行的条目(自动处理多个空格的情况) entries = line.strip().split() # 遍历每个条目,匹配目标单词 for entry in entries: # 用startswith确保匹配完整单词,避免误判类似"joggings:3"的条目 if entry.startswith(f"{target}:"): print(entry)
方案二:使用while循环逐行读取
如果更倾向于while循环的写法,可以手动控制行读取:
target = "jogging" file_path = "your_file.txt" file = open(file_path, "r", encoding="utf-8") current_line = file.readline() # 循环读取直到文件末尾 while current_line: entries = current_line.strip().split() for entry in entries: if entry.startswith(f"{target}:"): print(entry) # 读取下一行 current_line = file.readline() # 手动关闭文件 file.close()
代码说明
strip()用于移除每行首尾的空白字符(换行符、空格等)split()默认按任意数量的空格分割字符串,处理行内多个空格的情况startswith(f"{target}:")确保匹配的是完整的目标单词,避免出现部分匹配的错误
内容的提问来源于stack exchange,提问作者GJO
相关产品推荐
相关产品推荐

