分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
在有些Linux上自带了tree命令来一树状结构显示一个目录,但是在有些linux上没有自带这个程序,所以这里用python写了一个小程序来实现这个功能,代码如下:
- #!/usr/bin/python
- import os, sys, string
- class XXTree:
- def __init__(self):
- pass
- def printHelp(self, cmd):
- print 'Please use the following cmd:'
- print ' ' + cmd + ' dir'
- print 'e.g.'
- print ' ' + cmd + ' /home/fkong/tmp'
- def getTree(self, dir):
- list = self.getList(dir, 0)
- treelist = []
- for i in range(0, len(list)):
- fullpath = list[i]
- parpath = os.path.dirname(list[i])
- filename = os.path.basename(list[i])
- if(fullpath == dir):
- treelist.append(fullpath)
- continue
- path = fullpath.replace(dir, "")
- names = path.split("/")
- name = "`---" + names[len(names) - 1]
- for j in range(1, len(names) - 1):
- name = " " + name
- treelist.append(name)
- pos = name.index("`")
- j = i - 1
- while j > 0:
- name = treelist[j]
- if(name[pos] == '`' or name[pos] == ' '):
- name = name[0: pos] + "|" + name[pos + 1: len(name)]
- treelist[j] = name
- else:
- break
- j = j - 1
- for i in range(0, len(treelist)):
- print treelist[i]
- def getList(self, dir, layer):
- list = []
- if layer == 0: list.append(dir)
- files = os.listdir(dir)
- for file in files:
- file = os.path.join(dir, file)
- if os.path.isdir(file):
- list.append(file)
- list += self.getList(file, layer + 1)
- else :
- list.append(file)
- return list
- if len(sys.argv) != 2:
- t = XXTree()
- t.printHelp(sys.argv[0])
- else:
- t = XXTree()
- dir = sys.argv[1]
- t.getTree(dir)
运行效果如下:
$ ./xxtree.py /home/fkong/workspace/jutility/.svn
/home/fkong/workspace/jutility/.svn
|---format
|---props
|---entries
|---prop-base
|---text-base
|---tmp
| |---prop-base
| |---props
| `---text-base
`---all-wcprops