获取文件目录结构的md输出

获取文件目录结构的代码

import os
from pathlib import Path


def generate_directory_markdown(start_path, output_file="directory_structure.md", ignore_hidden=True):
    """
    生成目录结构的Markdown文档

    :param start_path: 要扫描的根目录路径
    :param output_file: 输出文件名
    :param ignore_hidden: 是否忽略隐藏文件和目录
    """
    markdown = ["# 目录结构\n```"]

    def build_tree(path, indent=0):
        """递归构建目录树"""
        # 忽略隐藏文件/目录(以.开头的)
        if ignore_hidden and path.name.startswith('.'):
            return

        # 添加当前条目
        markdown.append(f"{'  ' * indent}|-- {path.name}/" if path.is_dir() else f"{'  ' * indent}|-- {path.name}")

        # 如果是目录则递归处理
        if path.is_dir():
            try:  # 处理可能的权限问题
                entries = sorted(os.scandir(path), key=lambda x: (not x.is_dir(), x.name.lower()))
                for entry in entries:
                    build_tree(Path(entry), indent + 1)
            except PermissionError:
                markdown.append(f"{'  ' * (indent + 1)}|-- [权限拒绝访问]")

    try:
        build_tree(Path(start_path).resolve())
        markdown.append("```")

        # 写入Markdown文件
        with open(output_file, 'w', encoding='utf-8') as f:
            f.write('\n'.join(markdown))

        print(f"目录结构已生成至 {output_file}")
    except Exception as e:
        print(f"发生错误: {str(e)}")


if __name__ == "__main__":
    # 使用示例
    root_path = input("请输入要扫描的根目录路径(留空则使用当前目录): ") or os.getcwd()
    generate_directory_markdown(
        start_path=root_path,
        output_file="directory_structure.md",
        ignore_hidden=False
    )
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!