python3 实现 linux 命令 tree

system:centos6.7     python -V:3.5.2

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

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

#!/usr/bin/env python3
import os
import sys
from os.path import join,basename,isdir
def 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命令,其效果看起来确实更加美观。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值