当前位置: 首页 > news >正文

Python中打印当前目录文件树的脚本

 效果图:

实现脚本:

1、显示所有文件和文件夹: 

import osdef list_files(startpath, prefix=''):items = os.listdir(startpath)items.sort()for index, item in enumerate(items):item_path = os.path.join(startpath, item)is_last = index == len(items) - 1if os.path.isdir(item_path):print(f'{prefix}{"└── " if is_last else "├── "}{item}/')list_files(item_path, prefix + ('    ' if is_last else '│   '))else:print(f'{prefix}{"└── " if is_last else "├── "}{item}')# 显示当前目录的文件树
list_files('.')

解释:

• startpath: 开始遍历的目录路径。

• prefix: 用于控制缩进的字符串,初始为空字符串。

• items: 列出指定目录下的所有文件和文件夹,并进行排序。

• index: 当前遍历的文件或文件夹在列表中的索引。

• is_last: 判断当前遍历的文件或文件夹是否是列表中的最后一个。

• item_path: 拼接路径。

• os.path.isdir(item_path): 判断给定的路径是否是一个目录。

• "└── " if is_last else "├── ": 如果当前文件或文件夹是最后一个,则使用“└── ”,否则使用“├── ”。

• prefix + (' ' if is_last else '│ '): 更新缩进字符串,如果是最后一个文件或文件夹,则使用空格,否则使用“│ ”。

2、 只显示文件夹,不显示文件:

def list_nofiles(startpath, prefix=''):items = [item for item in os.listdir(startpath) if os.path.isdir(os.path.join(startpath, item))]items.sort()for index, item in enumerate(items):item_path = os.path.join(startpath, item)is_last = index == len(items) - 1dir_prefix = '└── ' if is_last else '├── 'prefix_str = f'{prefix}{dir_prefix}{item}/'print(prefix_str)sub_prefix = prefix + ('    ' if is_last else '│   ')list_nofiles(item_path, sub_prefix)# 显示当前目录的文件树
list_nofiles('.')

http://www.lryc.cn/news/492885.html

相关文章:

  • 全景图像(Panorama Image)向透视图像(Perspective Image)的跨视图转化(Cross-view)
  • Redis 中的 hcan 命令耗内存,有什么优化的方式吗 ?
  • 豆包MarsCode算法题:三数之和问题
  • 【Android】AnimationDrawable帧动画的实现
  • 【消息序列】详解(7):剖析回环模式--设备测试的核心利器
  • 解决Ubuntu 22.04系统中网络Ping问题的方法
  • 【大数据学习 | Spark-SQL】Spark-SQL编程
  • 15分钟做完一个小程序,腾讯这个工具有点东西
  • manim动画编程(安装+入门)
  • STL算法之数值算法<stl_numeric.h>
  • Oracle如何记录登录用户IP
  • Python图像处理:打造平滑液化效果动画
  • 构建Ceph分布式文件共享系统:手动部署指南
  • 数据结构——用数组实现栈和队列
  • vue3typescript,shims-vue.d.ts中declare module的vue声明
  • C/C++基础知识复习(30)
  • 【NLP 1、人工智能与NLP简介】
  • 网络安全事件管理
  • Swagger记录一次生成失败
  • Go 语言常用工具方法总结
  • ThingsBoard规则链节点:GCP Pub/Sub 节点详解
  • 【Linux】select,poll和epoll
  • Qt程序发布及打包成exe安装包
  • python怎样运行js语句
  • 汽车渲染领域:Blender 和 UE5 哪款更适用?两者区别?
  • JAVA实现将PDF转换成word文档
  • 前端-Git
  • 如何分析Windows防火墙日志
  • 工作坊报名|使用 TEN 与 Azure,探索你的多模态交互新场景
  • 学习笔记041——Elastic Search的学习与使用以及SpringBoot整合