python实现Tree命令输出

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: python实现Tree命令输出

实现目标

linux中tree命令可以查看目录树,但是有时候我们并不不能使用这个命令。有可能你没有安装或者你无法进入bash命令行

依赖条件

已经安装好python3.11 ,原则上其他版本也可以

实现代码

主代码

# -*- coding: utf-8 -*-

# __ author:Jack
# date: 2024-04-01

import os

PREFIX = ['└─ ', '├─ ']
INDENTION = ['│  ', ' '*4]

# path : 文件夹全路径
# flag : 是否为最后一个文件(夹),为true 代表最后一个文件(夹),初始值None未被使用
# relation : 每层文件夹的flag属性
def tree(path, flag=None, relation=[]):
    #files = os.listdir(path)
    files = [f for f in os.listdir(path) if not f.startswith(".")]
    files.sort(reverse=True)

    yield ''.join(['' if flag is None else PREFIX[not flag],os.path.basename(path),'\n'])

    if flag is not None:
        relation.append(flag)

    for i in files:
        if i.startswith(".") or i.startswith("__"):
            continue        
        for j in relation:
            yield INDENTION[j]
        tempPath = os.path.join(path,i)
        if not os.path.isdir(tempPath):
            yield ''.join([PREFIX[i!=files[-1]], i, '\n'])
        else:
            for i in tree(tempPath,i==files[-1],relation[:]):
                 print(i,end='')


HOME_DIR="/home/app"
if __name__=='__main__':
    for i in tree(HOME_DIR):
        print(i,end='')

输出样例

app
├─ test.ipynb
├─ source
│  └─ info.json
├─ requirements.txt
├─ models
│  └─ info.json
├─ datasets
│  ├─ D202211002
│  │  ├─ target
│  │  │  ├─ test.xlsx
│  │  │  └─ 17Mxx.zip
│  │  └─ src
│  │      ├─ test.xlsx
│  │      └─ test-1.jpg
│  └─ D202211001
│      ├─ tag
│      │  └─ test-1.jpg
│      └─ original
│          ├─ xx1.png
│          ├─ roi.jpg
│          ├─ readme
│          ├─ 2.jpg
│          └─ 1.89.gif
└─ README.md
目录
相关文章
|
18天前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
55 1
思科设备巡检命令Python脚本大集合
|
21天前
|
Python
Python PDB命令介绍
【10月更文挑战第15天】 使用PDB的方式有两种,其中一种是在脚本中添加代码,不觉得这种方式比print好在哪里,所以这种方式此文不表。这里我们只学习PDB的命令行使用方式
33 4
|
26天前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
302 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
25天前
|
机器学习/深度学习 缓存 Linux
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
49 0
|
2月前
|
Unix Shell Linux
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
17 1
|
2月前
|
Python Windows
Python:执行py命令,提示: Can‘t find a default Python.
Python:执行py命令,提示: Can‘t find a default Python.
|
2月前
|
Shell Linux Python
python执行linux系统命令的几种方法(python3经典编程案例)
文章介绍了多种使用Python执行Linux系统命令的方法,包括使用os模块的不同函数以及subprocess模块来调用shell命令并处理其输出。
29 0
|
3月前
|
API 开发工具 网络架构
【Azure Developer】使用Python SDK去Azure Container Instance服务的Execute命令的疑问解释
【Azure Developer】使用Python SDK去Azure Container Instance服务的Execute命令的疑问解释
【Azure Developer】使用Python SDK去Azure Container Instance服务的Execute命令的疑问解释
|
3月前
|
前端开发 计算机视觉
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
Building wheel for opencv-python (pyproject.toml) ,安装命令增加 --verbose 参数
176 2
下一篇
无影云桌面