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)

最后,放一个效果图

相关推荐
SomeB1oody29 分钟前
【RustyML入门】2.0. 经典机器学习
开发语言·后端·机器学习·rust·教程
大数据魔法师32 分钟前
Python 网络请求库 curl_cffi:从入门到实战,如何规避网站指纹检测
python·数据分析
中电华星34 分钟前
专业的工业电源公司
网络·python
databook1 小时前
用统计检验来确定“重要特征”
python·机器学习·scikit-learn
0566461 小时前
Python高级——解释器执行原理与虚拟环境工程化实战
开发语言·python
weixin_435776111 小时前
2026年长沙托育vi设计从风格定位到元素运用的设计方法
linux·运维·服务器·python
梦想三三2 小时前
LangChain RAG PDF 智能问答实战:用 Streamlit 构建本地知识库(完整代码)
人工智能·python·langchain·大模型·rag
HJX_07242 小时前
嵌入式软件C语言八股文复习笔记5——编译、链接与底层硬核机制
c语言·开发语言·笔记
电化学仪器白超2 小时前
禹衡光栅长度计精度评测:基于国标0级氧化锆量块的校正与数据分析
python·单片机·嵌入式硬件·物联网·自动化
笨鸟先飞的橘猫2 小时前
c++面向对象编程
开发语言·c++