用Python实现了Linux下的tree命令的基本功能,没有实现各种参数。写得不好,欢迎拍砖。
觉得原来的没有Python的风格,换了一个写法,感觉格式不好看。。。
新的:
import os
def tree(path):
def tree_iter(path, prefix=''):
path = os.path.abspath(path)
listpath = os.listdir(path)
for p in listpath:
isLast = listpath.index(p) == len(listpath)-1
abspath = os.path.join(path, p)
print_tree(p, prefix, isLast)
if os.path.isdir(abspath):
next_prefix = prefix
next_prefix += ' ' if isLast else '| '
tree_iter(abspath, next_prefix)
def print_tree(path, prefix, isLast):
print(prefix, end='')
print('\\-- ' if isLast else '|-- ', end='')
print(path)
print(path)
tree_iter(path)
if __name__ == '__main__':
path = input('Path?\n')
tree(path)
旧的:
import os
def tree_iter(path, prefix=''):
path = os.path.abspath(path)
listpath = os.listdir(path)
for p in listpath:
isLast = listpath.index(p) == len(listpath)-1
abspath = os.path.join(path, p)
print_tree(p, prefix, isLast)
if os.path.isdir(abspath):
next_prefix = prefix
next_prefix += ' ' if isLast else '| '
tree_iter(abspath, next_prefix)
def print_tree(path, prefix, isLast):
print(prefix, end='')
print('\\-- ' if isLast else '|-- ', end='')
print(path)
def tree(path):
print(path)
tree_iter(path)
if __name__ == '__main__':
path = input('Path?\n')
tree(path)