Python中if语句匹配到目标行后如何打印后续的指定行数内容
实现代码
# 自定义匹配到目标行后需要打印的后续行数,打印1行设为1,打印2行设为2即可 print_after = 1 # 计数器,记录剩余需要打印的行数 remain_print = 0 # with上下文管理器会自动关闭文件,无需手动调用close方法 with open('test.txt', 'r', encoding='utf-8') as f: for line in f: if remain_print > 0: # strip()用于去除行首尾的换行、空白字符,不需要可删除,直接print(line) print(line.strip()) remain_print -= 1 # 匹配到目标行时重置计数器 if line.startswith('how old are you?'): remain_print = print_after
说明
- 原代码存在两个问题:
- if判断语句末尾缺少英文冒号,属于语法错误,直接运行会报错
- 仅在匹配到目标行时打印当前行,没有维护后续打印的状态标记,无法输出后续内容
- 如果需要同时打印匹配到的
how old are you?行本身,只需要在匹配判断分支中增加打印语句即可:if line.startswith('how old are you?'): print(line.strip()) remain_print = print_after - 修改
print_after的数值即可灵活控制打印匹配行之后的行数。
内容的提问来源于stack exchange,提问作者Kouros
相关产品推荐
相关产品推荐

