python实现Tree命令输出

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 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='')
AI 代码解读

输出样例

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
AI 代码解读
目录
打赏
0
0
0
0
12
分享
相关文章
Python执行Shell命令并获取结果:深入解析与实战
通过以上内容,开发者可以在实际项目中灵活应用Python执行Shell命令,实现各种自动化任务,提高开发和运维效率。
50 20
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
59 12
|
4月前
|
Python PDB命令介绍
【10月更文挑战第15天】 使用PDB的方式有两种,其中一种是在脚本中添加代码,不觉得这种方式比print好在哪里,所以这种方式此文不表。这里我们只学习PDB的命令行使用方式
75 4
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
839 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
python环境学习:pip介绍,pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。
本文介绍了Python的包管理工具pip和环境管理器conda的区别与联系。pip主要用于安装和管理Python包,而conda不仅管理Python包,还能管理其他语言的包,并提供强大的环境管理功能。文章还讨论了pip创建虚拟环境的方法,以及pip和conda的常用命令。作者推荐使用conda安装科学计算和数据分析包,而pip则用于安装无法通过conda获取的包。
234 0
|
5月前
|
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
31 1
Python:执行py命令,提示: Can‘t find a default Python.
Python:执行py命令,提示: Can‘t find a default Python.