如何用Python在文件中查找含指定关键词的目标内容并输出
问题解决:提取文件中含指定关键词的条目
原代码的问题
- 写入模式错误:
append函数使用"w"模式打开文件,每次调用都会清空文件内容重新写入,导致最终文件里只有最后一次写入的jackie.321,而非两个条目都保存。 - 未实现条目提取:仅检测关键词是否存在,没有对文件内容进行分割和筛选,无法输出匹配的具体条目。
修改后的代码
第一步:修复文件写入逻辑
先确保两个条目都能正确保存到文件中:
def append(name, password): # 使用"a"追加模式,每次写入不会清空原有内容 with open("myfile.txt", "a") as f: f.write(f"{name}{password} ") # 用空格分隔每个条目 # 写入两个条目 append("jack", ".123") append("jackie", ".321")
第二步:提取匹配关键词的条目
读取文件内容,分割后筛选出包含关键词的条目:
with open("myfile.txt", "r") as f: content = f.read().strip() # 去除首尾空白字符 items = content.split() # 按空格分割成单个条目列表 # 筛选包含"jack"的条目 matched_items = [item for item in items if "jack" in item] # 输出结果 if matched_items: for item in matched_items: print(item) else: print("未找到匹配的内容")
进阶:精确匹配前缀
如果需要只匹配以"jack"开头的条目(排除jackie.321),只需把筛选条件改成:
matched_items = [item for item in items if item.startswith("jack")]
说明
- 使用
with语句操作文件,会自动处理文件关闭,避免资源泄漏。 - 分割条目时用
split(),默认按任意空白字符分割,适配不同的分隔场景。
内容的提问来源于stack exchange,提问作者Hasan Cb
相关产品推荐
相关产品推荐

