python实现命令tree的效果

把所有的文档都传到了git上,但是内容过多找起来不方便,突发奇想如果能在readme中,递归列出所有文件同时添加上对应的地址,这样只需要搜索到对应的文件点击就能跳转过去了...

列出文件总得有个显示格式,所以就按照tree的来了...

用python实现命令tree的效果

首先,这是tree的效果

用到的符号实际只有三个 ├─ │ └─.

我本以为会挺难的,因为百度了半天各种都有,但是没找到一个做出tree这个效果的

最后因为是新手,所以代码写的可能有很多不足.

python 复制代码
#!/usr/bin/env python
# -*-coding:utf-8-*-
'''
    describe:
'''
import os

# 黑名单 不想列出的目录
blacklist = [".git",".idea"]
# 指定列出那个目录下的所有内容
rpath = "D:\\document"
def DirAndFile(path,symbol = ""):
    # 列出所有目录和文件 同时统计数量用于判断
    fileList = os.listdir(path)
    totleNum = len(fileList)
    num = 1
    for i in fileList:
        # 如果是黑名单目录 那么直接跳过
        if i in blacklist:
            num = num + 1
            continue
        # 路径合并 递归调用时继续向下传递
        tmpPath = os.path.join(path,i)
        if os.path.isfile(tmpPath):
            # 判断是否为最后一个
            if num == totleNum:
                print(symbol + "  └─ ",i)
            else:
                print(symbol + "  ├─ ",i)
        else:
            # 判断目录是否为最后一个 如果是则使用不同的符号
            if num == totleNum:
                print(symbol + "  └─ ",i)
                DirAndFile(tmpPath, symbol + "     ")
            else:
                print(symbol + "  ├─ ", i)
                DirAndFile(tmpPath,symbol + "  │  ")
        num = num + 1

if __name__ == '__main__':
    print(rpath)
    DirAndFile(rpath)

最后,放一个效果图

相关推荐
卷无止境1 分钟前
用FastAPI和PyCasbin搭一套能扛住数据中台复杂权限需求的鉴权中枢
后端·python
卷无止境4 分钟前
Python Web开发权限控制方案全景:从RBAC到策略引擎
后端·python
曾小猫24 分钟前
20编辑型描述符的使用
开发语言
禁默25 分钟前
信创实战:Python + SQLAlchemy 接入金仓数据库(从驱动安装到完整 CRUD)
开发语言·数据库·python
淼澄研学28 分钟前
NVIDIA NeMo Guardrails 2.0实战:大模型安全护栏集成指南
人工智能·python·安全
测试老哥31 分钟前
软件测试:单元测试详解
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
数字会议深科技32 分钟前
集团总部如何集中管控全国分支机构的录音?——音频采录云管方案解析
开发语言·人工智能·会议解决方案·音频采录云管方案·集团·阵列麦克风·会议设备
lingran__40 分钟前
C++ STL 关联式容器万字详解:set、multiset、map、multimap|接口用法 + 易错点 + 力扣真题实战
开发语言·c++·stl·set·map·红黑树·关联式容器
c238561 小时前
C/C++每日一练21
c语言·开发语言·c++
小猴子爱上树1 小时前
跨马翻译:批量图片翻译与视频字幕工具,跨境电商高效助手
python·音视频