python 实现结构树模式显示目录下文件

本文介绍了一种使用Python实现的目录树结构生成器,能够清晰地展示文件夹内的所有子目录及文件,方便用户了解文件包的内容组成。

在发布一个项目或者产品的时候,需要将项目内的文件打包上传,但是下载人员在下载前最好能看到文件包的内容,文件名字等,如果使用手动方式录入就太麻烦了,也容易出错,如果使用文本模式罗列的话看的还不是特别的清楚,所以最好能实现和windows资源管理器模式的结构树的模式显示就最好了。下面就展示了如何实现。

1.先展示结果。

2.实现代码

# -*- coding: utf-8 -*-

'''

仿Linux命令tree生成树形目录结构,

并汇总当前目录下文件总算



Author: ***

Date: 2020-09-18

'''



import os



def fileCntIn(currPath):

    '''汇总当前目录下文件数'''

    return sum([len(files) for root, dirs, files in os.walk(currPath)])



def dirsTree(startPath):

    '''树形打印出目录结构'''

    # 打开一个文件

    fo = open("foo.txt", "w")



    for root, dirs, file in os.walk(startPath):

        #获取当前目录下文件数

        fileCount = fileCntIn(root)

        #获取当前目录相对输入目录的层级关系,整数类型

        level = root.replace(startPath, '').count(os.sep)

        #树形结构显示关键语句

        #根据目录的层级关系,重复显示'| '间隔符,

        #第一层 '| '

        #第二层 '| | '

        #第三层 '| | | '

        #依此类推...

        #在每一层结束时,合并输出 '|    '

        indent = '│ ' * 1 * level + '│'

        #print('%s%s fileCount:%s' % (indent, os.path.split(root)[1], fileCount))

        print('%s[%s] ' % (indent, os.path.split(root)[1]))

        fo.write('%s[%s] ' % (indent, os.path.split(root)[1]))

        fo.write('\n')

        for i in file:

            print('%s    %s ' % (indent, i))

            fo.write('%s    %s ' % (indent, i))

            fo.write('\n')

    # 关闭打开的文件

    fo.close()



if __name__ == '__main__':

    path = u"D:\\999、tool\\串口工具"

    dirsTree(path)

print('分析完成,结果保存到foo.txt')

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

six2me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值