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

Python脚本如何获取导入它的上层文件的完整源代码?

实现方法

核心依赖Python自带的inspect模块获取调用栈,定位到导入analyzer.py的主脚本位置,读取源码即可实现需求,具体实现如下:

analyzer.py 完整示例代码

import inspect
import os

# 遍历调用栈找到__main__对应的主脚本栈帧
for frame_info in inspect.stack():
    if frame_info.frame.f_globals.get("__name__") == "__main__":
        main_script_path = frame_info.filename
        break
else:
    # 未找到主脚本(通常是交互式运行场景)
    main_script_path = None

# 读取主脚本源码并执行分析
if main_script_path and os.path.isfile(main_script_path):
    with open(main_script_path, "r", encoding="utf-8") as f:
        main_code = f.read()
    
    # 你的分析逻辑写在这里,示例:检测是否包含print关键字
    if "print" in main_code:
        print("检测到主脚本包含print关键字")
    else:
        print("检测到主脚本不包含print关键字")

注意事项

  • 仅对落地为本地文件的主脚本生效,交互式运行场景(REPL、Jupyter Notebook等)无法获取到对应文件路径
  • 若主脚本运行时存在动态修改、未保存到本地的内容,读取到的源码为文件最后保存的版本
  • 建议明确指定文件读取编码,避免跨系统运行时出现编码错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:09:03