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

如何获取Python文件中locals()与globals()的解析树(字符串/终端输出形式)

获取Python中locals()/globals()的结构化输出方法

1. 基础字符串输出

直接通过str()或repr()将字典转换为字符串,适合快速查看内容:

# 打印globals()的字符串形式
print(str(globals()))
# 打印locals()的字符串形式
print(repr(locals()))

2. 美观格式化输出(推荐)

使用Python内置的pprint模块,自动对嵌套结构做缩进、换行处理,输出更易读的层级内容:

import pprint

# 格式化打印globals()
pprint.pprint(globals())
# 格式化打印locals()
pprint.pprint(locals())

3. 树形结构展示

如果需要更直观的树形层级,可以自定义递归遍历函数,用符号标识层级关系:

def print_var_tree(obj, indent=0, branch=""):
    indent_pad = "  " * indent
    if isinstance(obj, dict):
        for key, val in obj.items():
            print(f"{indent_pad}{branch}{key}:")
            print_var_tree(val, indent + 1, "├─ ")
    elif isinstance(obj, (list, tuple)):
        for idx, item in enumerate(obj):
            print(f"{indent_pad}{branch}[{idx}]:")
            print_var_tree(item, indent + 1, "├─ ")
    else:
        print(f"{indent_pad}{branch}{repr(obj)}")

# 以树形结构打印globals()
print_var_tree(globals())

4. 输出到文件或保存为字符串

如果需要将结果保存为字符串或文件,可借助io模块或文件操作实现:

import io
import pprint

# 保存为字符串
output_buffer = io.StringIO()
pprint.pprint(globals(), stream=output_buffer)
result_str = output_buffer.getvalue()

# 保存到本地文件
with open("globals_output.txt", "w") as f:
    pprint.pprint(globals(), stream=f)

你当前获取的globals()内容是Python主模块初始化后的默认全局变量集合,包含内置模块、加载器等基础环境信息,属于正常的初始全局环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:05:08