20.Python实现文件目录关系树状图

今天学长给大家带来了 Python 实现文件目录关系通过树状图展示。

编写代码

要求:快速将目录下所有子目录的关系用树状图的形式展示。

首先,我们需要先准备好示例文件夹,代码如下:

import os

def create_directory_structure():
    """
    创建示例目录结构
    """

    school_name = "./tmp/附属小学"
    grades = ["一年级""二年级""三年级"]
    classes_per_grade = 3

    # 创建学校目录
    os.makedirs(school_name)

    # 创建年级目录
    for grade in grades:
        grade_path = os.path.join(school_name, grade)
        os.makedirs(grade_path)

        # 创建班级目录
        for class_num in range(1, classes_per_grade + 1):
            class_path = os.path.join(grade_path, f"班级{class_num}")
            os.makedirs(class_path)

            # 创建学生成绩表
            with open(os.path.join(class_path, "成绩表.txt"), "w", encoding='utf-8'as file:
                file.write("学生姓名, 成绩n")
                file.write("张三, 90n")
                file.write("李四, 85n")
                file.write("王五, 95n")

# 创建示例目录结构
create_directory_structure()

运行上诉代码后,我们可以运行以下代码输出文件关系树状图:

import os

def generate_tree(start_path, indent=''):
    """
    生成目录结构树
    """

    if os.path.isdir(start_path):
        print(indent + os.path.basename(start_path))
        indent += "│  "
        files = sorted(os.listdir(start_path))
        for index, file in enumerate(files):
            if index == len(files) - 1:
                new_indent = indent[:-3] + "   "
            else:
                new_indent = indent
            generate_tree(os.path.join(start_path, file), new_indent)
    else:
        print(indent + "└─ " + os.path.basename(start_path))

# 用法示例
start_directory = "./tmp/附属小学"
generate_tree(start_directory)


运行结果

然后运行该程序,就可以展示所选目录的所有子目录关系树状图,如下图:

20.Python实现文件目录关系树状图

结论

通过本文的介绍,你学会了如何使用 Python 快速实现展示所选目录的所有子目录关系树状图。


原文始发于微信公众号(学长工具库):20.Python实现文件目录关系树状图

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/271077.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!