python3 实现 linux 命令 tree

来源:互联网 发布:淘宝买家诈骗怎么办 编辑:程序博客网 时间:2024/06/14 00:39

system:centos6.7     python -V:3.5.2

用递归的方法遍历文件和文件夹,并统计他们的个数

后带的参数看查看子文件夹或绝对路径的树形结构图,省略后带参数则查看当前文件夹

#!/usr/bin/env python3import osimport sysfrom os.path import join,basename,isdirdef tree(d,leval=0,pre=''):       global a,b     l=[i for i in os.listdir(d) if i[0]!='.']    for i,f in enumerate(l):        last= i==len(l)-1        s1="'" if last else '|'        s2=" " if last else '|'        print('{}{}--{}'.format(pre,s1,f))                t=join(d,f)        if os.path.isdir(t):            a+=1            tree(t,leval+1,'{}{}  '.format(pre,s2))                    else:            b+=1  def main(d=os.getcwd()):                  print(basename(d.rstrip(os.sep)))    tree(d)    print('\ntotal={}folders,{}files\n'.format(a,b))    if __name__=='__main__':    a,b=0,0     #a,b分别为文件夹总数和文件总数    if len(sys.argv)<2:        main()    else:        if isdir(sys.argv[1]):            main(sys.argv[1])        else:            print(sys.argv[1],'is not a directory')


运行结果:

[willie@localhost blog]$ python3 ~/code/tree.py

[willie@localhost blog]$ python3 ~/code/tree.py templates/


PS:centos系统下超级用户执行:  #yum -y install tree

就可以安装tree命令,其效果看起来确实更加美观。

0 0
原创粉丝点击