获取文件目录结构的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 协议》,转载必须注明作者和本文链接
推荐文章: