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)

最后,放一个效果图

相关推荐
_Voosk1 分钟前
写了个开头的 C++ Tutorial
开发语言·c++
December3103 分钟前
【少儿编程】Scratch vs Python:区别、学习顺序&实操指南
python·学习·青少年编程·scratch·少儿编程·编程学习
serve the people4 分钟前
tensorflow 如何使用 tf.RaggedTensorSpec 来创建 RaggedTensor
人工智能·python·tensorflow
larance5 分钟前
使用setuptools 打包python 模块
开发语言·python
速易达网络5 分钟前
Python全栈学习路径:从零基础到人工智能实战
python·flask
树下水月5 分钟前
下载PHP 的历史版本
开发语言·php
秋刀鱼 ..5 分钟前
2026生物神经网络与智能优化国际研讨会(BNNIO 2026)
大数据·python·计算机网络·数学建模·制造
繁星蓝雨6 分钟前
Qt优雅的组织项目结构一(使用pri进行模块化配置)——————附带详细示例代码
开发语言·qt·pri
喜欢流萤吖~9 分钟前
JSP 内置对象解析:功能、作用域与常用方法
java·开发语言