第一种最速方式,cmd直接用tree命令,如果还要文件用 tree /f

C:\Users\ds>tree d:\9月考勤 > d:\test.xlsC:\Users\ds>tree /f  d:\9月考勤 > d:\test.xls

第二种,注意要管理员权限(即可以进入所有要生成的目录),可以按需生成目录树或文件树:

警告:这个是遍历的,如果目录太大会超级慢,可以自行用os.walk 结合level 修改成遍历文件夹

import time
import os
import subprocess as spdef list_files(startPath):#目录输出的文件with open(r'd:\list.txt', 'w') as fileSave:#遍历目录for root, dirs, files in os.walk(startPath):#设置遍历层级level = root.replace(startPath, '').count(os.sep)#根据层级设定目录输出范围,不需要可以注释掉if level<=2:indent = '*' * 1 * level#输出目录名fileSave.write('{}{}'.format(indent, os.path.basename(root)) + '\n')#输出完整目录名带路径#fileSave.write('{}{}\\'.format(indent, os.path.abspath(root)) + '\n')#下面同上,主要是输出文件用#subIndent = '*' * 1 * (level + 1)#for f in files:# fileSave.write('{}{}'.format(subIndent, f) + '\n')#fileSave.write('{}{}{}'.format(subIndent, os.path.abspath(root), f) + '\n')fileSave.close()if __name__ == '__main__':path= r'd:\共享'#dir = raw_input('please input the path:')list_files(path)

第三种(这个是转的,出处忘了):

import os
import subprocess as spimport re
from pathlib import Path
from pathlib import WindowsPath
from typing import Optional, Listclass DirectionTree:def __init__(self,direction_name: str = 'WorkingDirection',direction_path: str = '.',ignore_list: Optional[List[str]] = None):self.owner: WindowsPath = Path(direction_path)self.tree: str = direction_name + '/\n'self.ignore_list = ignore_listif ignore_list is None:self.ignore_list = []self.direction_ergodic(path_object=self.owner, n=0)def abc(self):print(self)def tree_add(self, path_object: WindowsPath, n=0, last=False):if n > 0:if last:self.tree += '│' + ('    │' * (n - 1)) + '    └────' + path_object.nameelse:self.tree += '│' + ('    │' * (n - 1)) + '    ├────' + path_object.nameelse:if last:self.tree += '└' + ('──' * 2) + path_object.nameelse:self.tree += '├' + ('──' * 2) + path_object.nameif path_object.is_file():self.tree += '\n'return Falseelif path_object.is_dir():self.tree += '/\n'return Truedef filter_file(self, file):for item in self.ignore_list:if re.fullmatch(item, file.name):return Falsereturn Truedef direction_ergodic(self, path_object: WindowsPath, n=0):dir_file: list = list(path_object.iterdir())dir_file.sort(key=lambda x: x.name.lower())dir_file = [f for f in filter(self.filter_file, dir_file)]for i, item in enumerate(dir_file):if i + 1 == len(dir_file):if self.tree_add(item, n, last=True):self.direction_ergodic(item, n + 1)else:if self.tree_add(item, n, last=False):self.direction_ergodic(item, n + 1)if __name__ == '__main__':i_l = ['\.git', '__pycache__', 'test.+', 'venv', '.+\.whl', '\.idea', '.+\.jpg', '.+\.png','image', 'css', 'admin', 'tool.py', 'db.sqlite3']tree = DirectionTree(ignore_list=i_l, direction_path=r'D:\9月')print(tree.tree)

再来一种,转:Python实战笔记(一) 递归输出目录结构 - 半虹 - 博客园

python学习 生成目录树相关推荐

  1. Python生成目录树

    1.CMD生成目录树 1.1 查看帮助 1.2 作用 1.3 命令格式 2.Python生成目录树 2.1 标准库pathlib介绍 2.2 代码实现 2.3 改进,显示指定目录 2.4 改进,保存文 ...

  2. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  3. Windows-tree命令生成目录树

    tree命令生成目录树 2K以上的操作系统中都带有tree命令,98下面没有,就算是把2K下面的拷过去也用不起来. tree命令的格式是tree [drive][path] [/F] [/A] /F ...

  4. tree命令生成目录树

    tree命令生成目录树 1. tree背景 2. tree安装 3. tree说明 4. tree使用 1. tree背景 在项目设计文档时经常需要对项目结构进行说明,如果能生成目录树结构则是对项目结 ...

  5. oracle 生成目录树,根据路径列和标题列生成目录树 - Foxtable 中文帮助文档

    根据路径列和标题列生成目录树 有的时候,目录树要根据两列内容生成,一列指定路径,一列指定标题,根据两列内容生成目录树需要使用GenerateTree方法. 语法: GenerateTree(DataT ...

  6. 【python】遍历目录树

    大家好,我是胡亥大魔王.今天介绍python中遍历目录树 假如你想对某个文件夹中的所有文件改名,包括该文件夹中所有子文件夹中的所有文件.也就是说,你想遍历整个目录树,python提供了一个 os.wa ...

  7. Python中的目录树列表

    如何获取Python中给定目录中所有文件(和目录)的列表? #1楼 我写了一个很长的版本,包含了我可能需要的所有选项: http : //sam.nipl.net/code/python/find.p ...

  8. oracle 生成目录树,jQuery zTree插件快速实现目录树

    ztree是JQuery的一个开源树形目录的插件,用来快速构建网站的树形目录结构,并且提供了功能丰富,利于扩展的API. JQuery ztree官网 只要引入jquery和ztree的库js,然后给 ...

  9. python 抓取目录树_python 获取文件下所有文件或目录os.walk()的实例

    在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目 ...

最新文章

  1. 动态获取UILabel的bounds
  2. python怎么换行输入而不执行_关于在IDLE中怎么换行继续敲写代码而不执行语句...
  3. C++ bitset的用法
  4. 96KB存储器的怎么算地址范围_产品条码怎么申请费用
  5. bzoj2282 [Sdoi2011]消防 直径+二分+树dp
  6. 期权水平套利可行分析(20191204)[博]
  7. 想看程序员的成长课这本书
  8. linux web部署命令简单记录
  9. 最全经典 | 机器视觉基础知识汇总
  10. 网易云通信 java 登录_Java接入网易云信工具类
  11. Win 双网卡上网冲突,网络设置
  12. Label free定量蛋白质组学
  13. 如何通过自我介绍打动面试官?
  14. 企业如何搭建并运营好积分商城?
  15. C sort 排序函数用法
  16. 【ACWing】2188. 无源汇上下界可行流
  17. 零基础学日语资料附经验分享
  18. 【点击链接,自动下载安装APP,小米公司的坑】在浏览器中, 我们以为回退就能解决误点击。其实是不管用的。
  19. 知识图谱-现代知识表示理论
  20. 查找Word文件中的中文字符

热门文章

  1. 1.redis常用的数据类型及应用
  2. 母亲节到了,一起祝福我们伟大的母亲!
  3. Codeforces 219E Parking Lot 线段树
  4. echo音箱配对及操作方法
  5. python timeit.timer_Python timeit
  6. 如何在 Ubuntu 服务器上安装 Gerrit?
  7. 函数指针作为某个函数的参数及定义函数指针
  8. python 取字符串的最后一位_python如何截取字符串最后的几位数字
  9. 上海迪士尼项目为何保持低调
  10. C语言基础——常用头文件相关函数初步总结