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('.')
相关文章:
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 le…...
全景图像(Panorama Image)向透视图像(Perspective Image)的跨视图转化(Cross-view)
一、概念讲解 全景图像到透视图像的转化是一个复杂的图像处理过程,它涉及到将一个360度的全景图像转换为一个具有透视效果的图像,这种图像更接近于人眼观察世界的方式。全景图像通常是一个矩形图像,它通过将球面图像映射到平面上得到…...
Redis 中的 hcan 命令耗内存,有什么优化的方式吗 ?
Redis 中的 hcan 命令耗内存,有什么优化的方式吗 ? 1. 使用合适的游标值:2. 控制每次迭代返回的键数量:3. 避免长时间运行的迭代:4. 使用HSCAN与SCAN命令结合:5. 优化哈希表结构:6. 监控和调整R…...
豆包MarsCode算法题:三数之和问题
问题描述 思路分析 1. 排序数组 目的: 将数组 arr 按升序排序,这样可以方便地使用双指针找到满足条件的三元组,同时避免重复的三元组被重复计算。优势: 数组有序后,处理两个数和 target - arr[i] 的问题可以通过双指针快速找到所有可能的组…...
【Android】AnimationDrawable帧动画的实现
目录 引言 一、AnimationDrawable常用方法 1.1 导包 1.2 addFrame 1.3 setOneShot 1.4 start 1.5 stop 1.6 isRunning 二、 从xml文件获取并播放帧动画 2.1 创建XML文件 2.2 在布局文件中使用帧动画资源 三、在代码中生成并播放帧动画 3.1 addFrame加入帧动画列…...
【消息序列】详解(7):剖析回环模式--设备测试的核心利器
目录 一、概述 1.1. 本地回环模式 1.2. 远程环回模式 二、本地回环模式(Local Loopback mode) 2.1. 步骤 1:主机进入本地环回模式 2.2. 本地回环测试 2.2.1. 步骤 2a:主机发送HCI数据包并接收环回数据 2.2.2. 步骤 2b&…...
解决Ubuntu 22.04系统中网络Ping问题的方法
在Ubuntu 22.04系统中,网络问题时有发生,尤其是当涉及到静态IP地址配置和网线直连的两台机器时。本文将探讨一种常见问题——断开并重新连接网线后,尽管网卡显示为UP状态,但无法立即ping通对方机器,以及如何解决这一问…...
【大数据学习 | Spark-SQL】Spark-SQL编程
上面的是SparkSQL的API操作。 1. 将RDD转化为DataFrame对象 DataFrame: DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型。这样的数…...
15分钟做完一个小程序,腾讯这个工具有点东西
我记得很久之前,我们都在讲什么低代码/无代码平台,这个概念很久了,但是,一直没有很好的落地,整体的效果也不算好。 自从去年 ChatGPT 这类大模型大火以来,各大科技公司也都推出了很多 AI 代码助手ÿ…...
manim动画编程(安装+入门)
文章目录 1.基本介绍2.效果展示3.安装步骤3.1安装manba软件3.2配置环境变量3.3查看是否成功3.4什么是mamba3.5创建虚拟环境3.6尝试进入虚拟环境 4.vscode操作4.1默认配置文件 5.安装ffmpeg6.安装manim软件6.vscode制作7.我的学习收获 1.基本介绍 这个manim就是一款软件&#x…...
STL算法之数值算法<stl_numeric.h>
这一节介绍的算法,统称为数值(numeric)算法。STL规定,欲使用它们,客户端必须包含头文件<numeric>.SGI将它们实现与<stl_numeric.h>文件中。 目录 运用实例 accumulate adjacent_difference inner_product partial_sum pow…...
Oracle如何记录登录用户IP
在运维场景中,在定位到某个SQL引起系统故障之后,想知道是哪台机器发过来的,方便定位源头,该如何解决? 在 Oracle 数据库中记录登录用户的 IP 地址可以通过多种方法实现。以下是几种常见的方法,包括使用触发…...
Python图像处理:打造平滑液化效果动画
液化动画中的强度变化是通过在每一帧中逐渐调整液化效果的强度参数来实现的。在提供的代码示例中,强度变化是通过一个简单的线性插值方法来控制的,即随着动画帧数的增加,液化效果的强度也逐渐增加。 def liquify_image(image, center, radius…...
构建Ceph分布式文件共享系统:手动部署指南
#作者:西门吹雪 文章目录 micro-Services-TutorialCeph分布式文件共享方案部署Ceph集群使用CephCeph在kubernetes集群中的使用 micro-Services-Tutorial 微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应…...
数据结构——用数组实现栈和队列
目录 用数组实现栈和队列 一、数组实现栈 1.stack类 2.测试 二、数组实现队列 1.Queue类 2.测试 查询——数组:数组在内存中是连续空间 增删改——链表:链表的增删改处理更方便一些 满足数据先进后出的特点的就是栈,先进先出就是队列…...
vue3typescript,shims-vue.d.ts中declare module的vue声明
webpack已经有了vue-loader这些loader了,为什么还需要declare module *.vue’呢? declare module 是为了告诉 tsc 这是一个“模块”。 如果不声明, IDE 里因为 tsc 类型检查, lint 会标红。 但vue-loader 是在 Webpack 构建阶段使…...
C/C++基础知识复习(30)
1) 什么是 C 中的 Lambda 表达式?它的作用是什么? Lambda 表达式: 在 C 中,Lambda 表达式是一种可以定义匿名函数的机制,可以在代码中快速创建一个内联的函数对象,而不需要显式地定义一个函数。Lambda 表…...
【NLP 1、人工智能与NLP简介】
人人都不看好你,可偏偏你最争气 —— 24.11.26 一、AI和NLP的基本介绍 1.人工智能发展流程 弱人工智能 ——> 强人工智能 ——> 超人工智能 ① 弱人工智能 人工智能算法只能在限定领域解决特定的问题 eg:特定场景下的文本分类、垂直领域下的对…...
网络安全事件管理
一、背景 信息化技术的迅速发展已经极大地改变了人们的生活,网络安全威胁也日益多元化和复杂化。传统的网络安全防护手段难以应对当前繁杂的网络安全问题,构建主动防御的安全整体解决方案将更有利于防范未知的网络安全威胁。 国内外的安全事件在不断增…...
Swagger记录一次生成失败
最近在接入Swagger的时候遇到一个问题,就是Swagger UI可以使用的,但是/v3/docs 这个接口的json返回的base64类型的json,并不是纯json,后来检查之后是因为springboot3里面配置了json压缩。 Beanpublic HttpMessageConverters cusHt…...
AI智能体自我进化:基于Diff机制的自动化优化实践
1. 项目概述:当AI智能体学会“自我进化”最近在开源社区里,一个名为agentdiff的项目引起了我的注意。它的核心想法非常有趣:让AI智能体(Agent)能够像我们人类一样,通过“反思”和“对比”来学习和进化。简单…...
本地AI自动化工具monoClaw:让AI直接执行你的命令行指令
1. 项目概述:一个真正为你干活的本地AI自动化工具如果你也厌倦了在聊天窗口和终端之间来回切换,输入一个指令还得等AI生成代码,再手动复制粘贴去执行,那么monoClaw的出现,可能正是你期待的那个转折点。这个由codewithf…...
从“共和国之辉”到AI原生应用:一个关于“哥布林”诞生的技术启示录
从“共和国之辉”到AI原生应用:一个关于“哥布林”诞生的技术启示录 2025年7月,一篇名为《Where the goblins came from》的文章在Hacker News上引发了超过710票的热议。当大多数技术评论者将目光聚焦于AI模型的最新突破时,这篇来自OpenAI的文…...
汽车产业变革:从颠覆到协作的生态模式与SDV实践
1. 从“颠覆”到“协作”:汽车产业权力格局的深层变革在科技行业浸淫超过二十五年,我经历过三次真正意义上的“颠覆时刻”。第一次是2006年,Luminary Micro推出首款Arm Cortex-M3微控制器,它彻底改变了嵌入式系统的游戏规则。第二…...
自动驾驶人机交接:DMS与安全验证如何破解控制权转移困局
1. 自动驾驶人机交接的核心困境与行业分野最近几年,自动驾驶(AV)和高级驾驶辅助系统(ADAS)无疑是汽车科技领域最炙手可热的话题。无论是传统车企的“新四化”转型,还是科技公司的颠覆性入局,大家…...
AI驱动的网络安全:深度学习与LLM在威胁检测与教育中的应用
1. 项目概述:AI赋能的网络安全新范式在网络安全领域,我们正面临着一个日益严峻的悖论:一方面,攻击手段正变得前所未有的复杂和自动化;另一方面,74%的安全事件仍然源于人为因素。这种技术与人的双重挑战催生…...
液态硅胶注塑加工供应商推荐
随着液态硅胶(LSR)在医疗、母婴、电子、汽车等多个领域的广泛应用,选择一个可靠的液态硅胶注塑加工供应商变得至关重要。作为天沅智能制造科技有限公司(简称TYM),我们不仅深耕于液态硅胶注射成型机械的设计…...
日志收集与分析平台搭建:ELK Stack实战入门
为什么测试工程师需要ELK在软件测试的日常工作中,日志是我们最熟悉也最依赖的“侦探工具”。无论是定位功能缺陷、分析性能瓶颈,还是复现偶发性Bug,测试人员都离不开日志。然而,随着微服务架构、容器化部署和分布式系统的普及&…...
别再乱用STOP模式了!STM32L4三种STOP模式深度对比与选型实战
STM32L4低功耗设计实战:STOP模式选型与能效优化全解析 在物联网终端设备与便携式仪器开发中,每微安电流的节省都直接关系到产品的市场竞争力。最近为一个农业传感器项目做方案评审时,发现团队在STOP模式选择上存在严重误区——工程师们习惯性…...
sndcpy音频转发工具:Android设备音频镜像的完整指南
sndcpy音频转发工具:Android设备音频镜像的完整指南 【免费下载链接】sndcpy Android audio forwarding PoC (scrcpy, but for audio) 项目地址: https://gitcode.com/gh_mirrors/sn/sndcpy 想要在电脑上实时收听Android设备的音频内容吗?sndcpy音…...
