【Python】用文本打印树
From:http://zhidao.baidu.com/link?url=O8U5TynGBMojDw2iFhlghPPf5_ZE1X8CAQMrK19pv-KxhvKCc6Z2yzsoQaukgN2haYudVO7Hg3c0ZvNm8ALcY_
#!/usr/bin/python3 # -*- coding: utf-8 -*- def print_tree(tree): buff = ['ROOT/'] _print_tree(tree, buff, '', 0) print('\n'.join(buff)) def _print_tree(tree, buff, prefix, level): count = len(tree) for k, v in tree.items(): count -= 1 if v: buff.append('%s +- %s/' % (prefix, k)) if count > 0: _print_tree(v, buff, prefix + ' | ', level + 1) else: _print_tree(v, buff, prefix + ' ', level + 1) else: buff.append('%s +- %s' % (prefix, k)) def test(): tree = { 'bin': { 'bash': None, 'cat': None, 'cp': None, }, 'etc': { 'init.d': { 'apache2':None, 'slapd':None, 'sshd':None, }, 'passwd': None, 'hosts': None, }, 'var': { 'log': { 'apache2': { 'accesslog':None, 'errorlog': None, }, }, }, } print_tree(tree) if __name__ == '__main__': test()
输出
ROOT/ +- etc/ | +- passwd | +- init.d/ | | +- apache2 | | +- sshd | | +- slapd | +- hosts +- bin/ | +- cp | +- bash | +- cat +- var/ +- log/ +- apache2/ +- errorlog +- accesslog
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架