From:http://zhidao.baidu.com/link?url=O8U5TynGBMojDw2iFhlghPPf5_ZE1X8CAQMrK19pv-KxhvKCc6Z2yzsoQaukgN2haYudVO7Hg3c0ZvNm8ALcY_

#!/usr/bin/python3
# -*- coding: utf- -*- def print_tree(tree):
buff = ['ROOT/']
_print_tree(tree, buff, '', )
print('\n'.join(buff)) def _print_tree(tree, buff, prefix, level):
count = len(tree)
for k, v in tree.items():
count -=
if v:
buff.append('%s +- %s/' % (prefix, k))
if count > :
_print_tree(v, buff, prefix + ' | ', level + )
else:
_print_tree(v, buff, prefix + ' ', level + )
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

【Python】用文本打印树的更多相关文章

  1. python利用Trie(前缀树)实现搜索引擎中关键字输入提示(学习Hash Trie和Double-array Trie)

    python利用Trie(前缀树)实现搜索引擎中关键字输入提示(学习Hash Trie和Double-array Trie) 主要包括两部分内容:(1)利用python中的dict实现Trie:(2) ...

  2. Python递归_打印节点信息

    Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...

  3. python统计文本中每个单词出现的次数

    .python统计文本中每个单词出现的次数: #coding=utf-8 __author__ = 'zcg' import collections import os with open('abc. ...

  4. Python与数据结构[3] -> 树/Tree[0] -> 二叉树及遍历二叉树的 Python 实现

    二叉树 / Binary Tree 二叉树是树结构的一种,但二叉树的每一个节点都最多只能有两个子节点. Binary Tree: 00 |_____ | | 00 00 |__ |__ | | | | ...

  5. Unity3D_07_日志、文本打印

    1.Debug.Log(“hello”); 2.打开控制台查看日志:ctrl+shift+c 3.输出一个位置的坐标(需要转换成字符串.ToString()) Vector3 worldPositio ...

  6. Python菜鸟文本处理4种方法

    自从认识了python这门语言,所有的事情好像变得容易了,作为小白,逗汁儿今天就为大家总结一下python的文本处理的一些小方法. 话不多说,代码撸起来. python大小写字符互换 在进行大小写互换 ...

  7. Python入门篇-数据结构树(tree)的遍历

    Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...

  8. Python入门篇-数据结构树(tree)篇

    Python入门篇-数据结构树(tree)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.树概述 1>.树的概念 非线性结构,每个元素可以有多个前躯和后继 树是n(n& ...

  9. Python Tkinter 文本框(Entry)

    Python Tkinter 文本框用来让用户输入一行文本字符串. 你如果需要输入多行文本,可以使用 Text 组件. 你如果需要显示一行或多行文本且不允许用户修改,你可以使用 Label 组件. 语 ...

随机推荐

  1. mariadb 10.1.10安装

    Maridb 10.1.10 on centos 6.6 *********************************************************************** ...

  2. 摘:"error LNK2019: 无法解析的外部符号 该符号在函数 中被引用" 错误原因

    例如“error LNK2019: 无法解析的外部符号error LNK2001: 无法解析的外部符号“private: static struct _OVERLAPPED CUsbCom::g_Wr ...

  3. DataGridView添加右键菜单等技巧

    1). 添加一个快捷菜单contextMenuStrip1:2). 给dataGridView1的CellMouseDown事件添加处理程序:  程序代码 private void DataGridV ...

  4. php 实现打印预览的功能

    <inputid="btnPrint" type="button" value="打印"onclick="javascrip ...

  5. Atitit.获取验证码图片通过web

    Atitit.获取验证码图片通过web 1. WebRequest进行较为底层的访问(不推荐) 1 2. WebBrowser截图 1 3. 剪贴板复制法Clipboard(推荐) 1 4. C# 取 ...

  6. jquery ajaxSubmit

    <script type="text/javascript" src="jquery/jquery.js"></script></ ...

  7. lua工具库penlight--02表和数组

    类Python的List lua的优美之处在于把数组和关联数组都用table实现了(Python中叫list和dict,C++中叫vector和map). 一般我们把数字索引的table叫做list. ...

  8. spring配置:context:property-placeholder 读取配置文件信息 在配置文件中使用el表达式填充值

    spring将properties文件读取后在配置文件中直接将对象的配置信息填充到bean中的变量里. 原本使用PropertyPlaceholderConfigurer类进行文件信息配置.Prope ...

  9. jquery filter和not

    jQuery filter() 方法 filter() 方法允许您规定一个标准.不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回. 下面的例子返回带有类名 "intro" ...

  10. ResourceBundle读取utf-8格式properties 中文乱码

    解决方法: ResourceBundle prop = ResourceBundle.getBundle("app");String defaultTunnelName = new ...