如何用Python搜索文本文件特定名称并打印整行及代码问题修复
问题原因
file.readlines()返回的是文件所有行组成的列表,原代码判断cpu in line的逻辑是检查cpu字符串是否完全等于列表中的某一整行内容(包含行尾换行符),而非检查某一行是否包含cpu字符串,和需求不符,这是核心错误。cpu变量未作为参数传入函数,存在作用域隐患,若未在全局定义会直接报错。
修复后代码
def GrabCPUInfo(target_cpu): found = False with open("cpu_list.txt", "r", encoding="utf-8") as file: for line in file: if target_cpu in line: print(line.strip()) found = True if not found: print("Incorrect information") # 调用示例,替换括号内内容为你需要搜索的CPU名称 GrabCPUInfo("需要搜索的CPU名称")
改动说明
- 新增
target_cpu作为函数入参,规避变量作用域问题 - 改为逐行遍历文件内容,大文件场景下内存占用更低
- 匹配逻辑调整为检查目标CPU名称是否包含在当前行内容中,符合搜索需求
- 新增匹配成功标记,仅遍历完全部内容未找到匹配结果时才输出错误提示
内容的提问来源于stack exchange,提问作者Apollo
相关产品推荐
相关产品推荐

