使用Python 3.12.2查找多行文本文件中含指定关键词的行
实现需求的几种实用方法
方法一:直接遍历匹配(最简洁)
不需要额外找行号,直接打开文件逐行检查,包含目标字符串就打印:
with open('text.txt', 'r', encoding='utf-8') as f: for line in f: cleaned_line = line.strip() if 'World' in cleaned_line: print(cleaned_line)
with语句会自动帮你关闭文件,避免资源泄漏;strip()用来去掉每行首尾的空格和换行符,让输出更干净。
方法二:同时获取行号(满足"找到目标行"的需求)
如果需要知道匹配内容所在的行号,用enumerate()函数可以同时拿到行号和行内容:
target = 'World' with open('text.txt', 'r', encoding='utf-8') as f: # start=1让行号从1开始,和你文件里的line编号一致 for line_num, line in enumerate(f, start=1): cleaned_line = line.strip() if target in cleaned_line: print(f"line {line_num} --> {cleaned_line}")
方法三:批量收集匹配行(适合后续处理)
如果需要把所有匹配的行存起来后续使用,可以用列表推导式一次性收集:
with open('text.txt', 'r', encoding='utf-8') as f: matched_lines = [line.strip() for line in f if 'World' in line.strip()] # 打印收集到的行 for line in matched_lines: print(line)
内容的提问来源于stack exchange,提问作者Carlos
相关产品推荐
相关产品推荐

