在发布一个项目或者产品的时候,需要将项目内的文件打包上传,但是下载人员在下载前最好能看到文件包的内容,文件名字等,如果使用手动方式录入就太麻烦了,也容易出错,如果使用文本模式罗列的话看的还不是特别的清楚,所以最好能实现和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')
本文介绍了一种使用Python实现的目录树结构生成器,能够清晰地展示文件夹内的所有子目录及文件,方便用户了解文件包的内容组成。
1557

被折叠的 条评论
为什么被折叠?



