You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何记录Python代码中if条件分支的执行行与迭代信息?

如何记录Python循环迭代中的代码执行与分支选择

下面是几种可行的方案,帮你追踪每次迭代中执行的代码行和if/else分支:

1. 使用Python内置trace模块

这是最省心的方式,无需修改原有代码就能生成完整的执行日志:

  • 直接在终端运行命令:
    python -m trace --trace your_script.py > execution_log.txt
    
  • 生成的execution_log.txt会逐行记录代码的执行顺序,包括每个循环迭代的步骤,以及每个if/else分支的执行情况,你能清晰看到每次迭代走了哪个分支。

2. 手动添加日志语句

如果不想生成过于冗余的日志,可以在关键分支处手动插入日志,精准记录你关心的信息:

  • 用Python标准库logging实现,示例如下:
    import logging
    
    # 配置日志输出到文件
    logging.basicConfig(
        filename='branch_log.txt',
        level=logging.INFO,
        format='%(asctime)s - 迭代%(iter_num)s: 执行%(branch)s分支,行号%(line_no)s'
    )
    
    for iter_num in range(10):
        if iter_num % 3 == 0:
            logging.info('', extra={'iter_num': iter_num, 'branch': 'if', 'line_no': __line__})
            # 你的if分支业务代码
        elif iter_num % 3 == 1:
            logging.info('', extra={'iter_num': iter_num, 'branch': 'elif', 'line_no': __line__})
            # 你的elif分支业务代码
        else:
            logging.info('', extra={'iter_num': iter_num, 'branch': 'else', 'line_no': __line__})
            # 你的else分支业务代码
    
  • 这种方式可以自定义日志格式,只记录关键分支信息,避免日志过载。

3. 自定义追踪函数(进阶)

如果需要更灵活的追踪逻辑,可以用sys.settrace定制自己的追踪器,比如只记录if/else相关的代码行:

import sys

def trace_execution(frame, event, arg):
    if event == 'line':
        line_content = frame.f_code.co_lines()[frame.f_lineno - frame.f_code.co_firstlineno][0]
        # 只记录包含if/else的代码行(可根据需求调整判断条件)
        if 'if' in line_content or 'else' in line_content:
            with open('custom_trace_log.txt', 'a') as f:
                f.write(f"迭代上下文:{frame.f_locals} | 执行行号{frame.f_lineno}:{line_content}\n")
    return trace_execution

sys.settrace(trace_execution)

# 这里放你的原有代码
for i in range(5):
    if i < 2:
        print(f"小值:{i}")
    else:
        print(f"大值:{i}")
  • 这种方式适合需要高度定制追踪规则的场景,比如只关注特定分支或特定变量的变化。

内容的提问来源于stack exchange,提问作者ashish gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:32:35