news 2026/6/10 10:28:34

python查看项目结构、tree.py、tree_details.py

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python查看项目结构、tree.py、tree_details.py

文章目录

    • tree.py 不带class类
    • tree_details 带class类

问ai时,反复需要描述项目结构,描述的不清,生成的方案大大不同。
先拿到项目结构丢给ai,再问问题准确率就会大大提高。

试了几种方法,如choco的tree,python的原生方法等。
实测原生python就很快,那就它了。

注:tree.py和tree_details.py都要创建在根目录下,千万别画蛇添足,放到utils目录下。

tree.py 不带class类

项目根目录下创建tree.py,代码:

importos# 直接跳过这些目录,不扫描!IGNORE={"venv",".venv","__pycache__",".git",".idea",".vscode"}defshow(path,prefix=""):items=sorted([fforfinos.listdir(path)iffnotinIGNORE])foridx,nameinenumerate(items):is_last=idx==len(items)-1connector="└── "ifis_lastelse"├── "print(f"{prefix}{connector}{name}")full=os.path.join(path,name)ifos.path.isdir(full):new_prefix=prefix+(" "ifis_lastelse"│ ")show(full,new_prefix)if__name__=="__main__":show(".")

tree_details 带class类

项目根目录下创建tree_details,代码:

importosimportast# 自动跳过的目录IGNORE={"venv",".venv","__pycache__",".git",".idea",".vscode","node_modules"}# 获取一个 .py 文件里的所有 class 名称defget_classes(file_path):try:withopen(file_path,"r",encoding="utf-8")asf:tree=ast.parse(f.read())classes=[node.namefornodeinast.walk(tree)ifisinstance(node,ast.ClassDef)]returnclassesexcept:return[]# 打印树形结构 + classdefshow(path,prefix=""):items=sorted([fforfinos.listdir(path)iffnotinIGNORE],key=lambdax:(0ifos.path.isdir(os.path.join(path,x))else1,x))foridx,nameinenumerate(items):full_path=os.path.join(path,name)is_last=idx==len(items)-1connector="└── "ifis_lastelse"├── "# 打印文件/文件夹print(f"{prefix}{connector}{name}")# 如果是文件夹 → 递归ifos.path.isdir(full_path):new_prefix=prefix+(" "ifis_lastelse"│ ")show(full_path,new_prefix)# 如果是 .py 文件 → 打印里面的 classelifname.endswith(".py"):classes=get_classes(full_path)ifclasses:new_prefix=prefix+(" "ifis_lastelse"│ ")forcinclasses:print(f"{new_prefix}─── class:{c}")if__name__=="__main__":print("📁 项目结构(含所有 class)\n")show(".")print("\n✅ 已自动跳过 venv / 第三方库")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 15:08:33

如何通过QPS、TPS、RT和吞吐量优化高并发系统性能?

1. 高并发系统的性能指标解析 刚入行的程序员第一次看到QPS、TPS这些缩写时,往往一头雾水。记得我参与的第一个电商大促项目,当运维同事说"系统QPS已经突破5000"时,我还傻傻地问这是什么意思。现在想来,理解这些基础指标…

作者头像 李华
网站建设 2026/4/14 15:08:22

FanControl终极指南:Windows风扇智能控制与静音优化完全教程

FanControl终极指南:Windows风扇智能控制与静音优化完全教程 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trend…

作者头像 李华
网站建设 2026/4/14 15:06:20

手把手教你用LobeChat:一键免费部署专属AI聊天机器人

手把手教你用LobeChat:一键免费部署专属AI聊天机器人 1. 为什么选择LobeChat? LobeChat是一个开源的AI聊天机器人框架,它让普通用户也能轻松搭建属于自己的智能对话系统。相比其他方案,LobeChat有三大优势: 完全免费…

作者头像 李华