python遍历目录的两种方法

news2024/11/27 4:21:15

 我们有时想直接查看文件夹里的所有文件,但使用正常的方法太麻烦了,于是我开发出了两个python程序,可以遍历目录

第一种

 不知大家还是否记得,我之前在我的处理文件程序里写过这个功能

python处理文件程序

这个程序只需要os、time库即可

import os,time

然后就可以写遍历代码了

for foldername,subfolders,filenames in os.walk(bianli_dir):
    print('当前文件夹:'+foldername)          #输出当前的文件夹📂
    for subfolder in subfolders:        #遍历当前文件夹中的子文件夹
        print('在'+foldername+'里的子文件夹:'+subfolder)
        for filename in filenames:#遍历子文件夹中的文件
            print('在'+foldername+'里的文件:'+filename)

剩下的就是询问、报错功能,大家根据自己的喜好可以往上添枝加叶

完整代码(示例)

print("请回答您要遍历的目录")
bianli_dir=input(">>>")
try:
    for foldername,subfolders,filenames in os.walk(bianli_dir):
        print('当前文件夹:'+foldername)          #输出当前的文件夹📂
        for subfolder in subfolders:        #遍历当前文件夹中的子文件夹
            print('在'+foldername+'里的子文件夹:'+subfolder)
            for filename in filenames:#遍历子文件夹中的文件
                print('在'+foldername+'里的文件:'+filename)
    time.Sleep(1)
    print(" ")
    print("遍历完成!")
except:
    if FileNotFoundError:
        print("没有此目录")
    else:
        print("此文件夹无法遍历")

测试程序,现在我有一个名为“111”的文件夹

运行。。。。。。

成功!已经满足了基本需求

第二种

这种方法是以界面形式反馈结果,有人会说,作者,你用上tkinter里的messagebox模块不就得了

也对,但是如果你要遍历一个特别大的文件夹呢

再大点,屏幕满了。。。。。

这时候我们得想一种别的方法,既然说到tkinter了,那咱就用它吧!

导包

import os
import tkinter as tk
from tkinter.ttk import *
class Tree(object):
    """遍历目录"""
    def __init__(self,path):
        self.win=tk.Tk()          #创建窗口
        self.win.title("显示树形目录")
        self.win.geometry("400x400")
        self.tree=Treeview(self.win)
        self.tree.heading("#0",text="file")
        self.tree.place(width=400,height=400)
        temppath=os.path.basename(path)#提取path中的最后一个文件名
        treeF=self.tree.insert('',0,text=temppath)#一级目录
        self.showtree(path,treeF)
        self.win.mainloop()
    def showtree(self,path,root):
        filelist=os.listdir(path)       #将文件夹的文件放入列表
        for filename in filelist:
            abspath=os.path.join(path,filename)
            #将路径添加到目录树中
            treeFinside=self.tree.insert(root,0,text=filename,values=(abspath))
            if os.path.isdir(abspath):
                self.showtree(abspath,treeFinside)

遍历代码

lujing=input("请输入遍历的路径")
a=Tree(lujing)

输入路径代码

总代码

import os
import tkinter as tk
from tkinter.ttk import *
class Tree(object):
    """遍历目录"""
    def __init__(self,path):
        self.win=tk.Tk()          #创建窗口
        self.win.title("显示树形目录")
        self.win.geometry("400x400")
        self.tree=Treeview(self.win)
        self.tree.heading("#0",text="file")
        self.tree.place(width=400,height=400)
        temppath=os.path.basename(path)#提取path中的最后一个文件名
        treeF=self.tree.insert('',0,text=temppath)#一级目录
        self.showtree(path,treeF)
        self.win.mainloop()
    def showtree(self,path,root):
        filelist=os.listdir(path)       #将文件夹的文件放入列表
        for filename in filelist:
            abspath=os.path.join(path,filename)
            #将路径添加到目录树中
            treeFinside=self.tree.insert(root,0,text=filename,values=(abspath))
            if os.path.isdir(abspath):
                self.showtree(abspath,treeFinside)
lujing=input("请输入遍历的路径")
a=Tree(lujing)

运行!

显示树形目录 2024-01-31 13-11-21

运行成功

=)

总结

这就是python遍历目录的两种方法,一种是用打印形式反馈结果,另一种是以tkinter界面反馈结果,其中第二种功能更加强大,任何文件夹,无论多大,都可遍历

望大家喜欢(❤ ω ❤)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1425966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【智慧工业】东胜物联定位与跟踪解决方案,为方案商提供蓝牙网关、信标等物联网智能硬件设备

利用东胜物联的蓝牙网关我们的合作伙伴在德国的建筑工地成功实施了基于物联网蓝牙的员工出勤和跟踪管理解决方案,该解决方案简化了员工时间表并增强了工作流程,为经理和主管提供了更多时间来专注于项目洞察,并提高了员工的效率、绩效和生产力…

C++进阶(九)哈希概念哈希函数哈希冲突

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、哈希概念1、哈希介绍2、哈希与哈希表 二、哈希冲突三、哈希函数四、 哈希冲突解决 一、哈…

移动端WEB开发

meta视口标签 <meta name"viewort" content"widthdevice-width&#xff0c;user-scalableno&#xff0c;initial-scale1.0&#xff0c;minimum-scale1.0"> 属性 解释说明 width 宽度…

【lesson3】高并发内存池的三层框架介绍

文章目录 高并发内存池需要考虑的问题高并发内存池的3个核心部分thread cachecentral cachepage cache 高并发内存池需要考虑的问题 现代很多的开发环境都是多核多线程&#xff0c;在申请内存的场景下&#xff0c;必然存在激烈的锁竞争问题。malloc本身其实已经很优秀&#xf…

QSS样式表简单梳理记录

1.带namespace的类&#xff0c;样式表写法&#xff1a; // 命令空间LW&#xff0c;类名Demo LW--Demo {background-color: rgba(0, 0, 0, 0.5); } 2.带状态的类&#xff0c;样式表写法&#xff1a; // 类名Demo&#xff0c;状态current Demo[current"true"] {back…

深度解读NVMe计算存储协议-3

在NVMe计算存储架构中&#xff0c;Copy命令用于在不同类型的命名空间之间进行数据复制&#xff1a; Memory Copy命令&#xff1a;定义于SLM&#xff08;Subsystem Local Memory&#xff09;命令集&#xff0c;主要用于从非易失性存储命名空间&#xff08;NVM namespaces&#x…

回归预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机多变量回归预测

回归预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机多变量回归预测 目录 回归预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向…

三款精选数字孪生产品大比拼

作为一名数据可视化领域的资深用户&#xff0c;我接触过众多数据可视化产品。本文将介绍三款备受关注的数据可视化工具&#xff0c;并对它们进行详细的比较。 首先&#xff0c;让我们了解一下数据可视化产品的核心价值。在信息爆炸的时代&#xff0c;数据可视化成为快速理解复…

09-信息收集-APP及其他资产等

信息收集-APP及其他资产等 信息收集-APP及其他资产等一、APP提取季抓包及后续配合1、某APK一键提取反编译2、利用bp抓取更多URL 二、某IP无web框架下的第三方测试1、各种端口一顿乱扫 —— 思路2、各种接口一顿乱扫 —— 思路3、接口部分一顿测试 —— 思路 三、**案例演示**1、…

华为1.24秋招笔试题

华为1.24秋招笔试题 1.题目1 题目详情 - 2024.1.24-华为秋招笔试-第一题-计算积分 - CodeFun2000 1.1题解 import java.util.Scanner;class Main{public static void main(String[] args){Scanner scnew Scanner(System.in);String ssc.next();char[] chs.toCharArray();in…

Go 中 struct tag 如何用?基于它实现字段级别的访问控制

嗨&#xff0c;大家好&#xff01;本文是系列文章 Go 小技巧第十篇&#xff0c;系列文章查看&#xff1a;Go 语言小技巧。 在 Go 中&#xff0c;结构体主要是用于定义复杂数据类型。而 struct tag 则是附加在 struct 字段后的字符串&#xff0c;提供了一种方式来存储关于字段的…

linux服务器上安装mysql

今天在华为云上安装mysql&#xff0c;安装命令很简单&#xff0c;就一行命令&#xff1a;sudo apt-get update && sudo apt-get install mysql-server 我安装的是mysql8.0版本&#xff0c;这里主要说一下安装mysql后怎么在外网连接&#xff1a; 1、注释掉 bind-add…

CoroNa Green acetoxymethyl (AM) ester,具有良好的细胞膜穿透能力

CoroNa Green, AM, Cell Permeant&#xff0c;CoroNa Green acetoxymethyl (AM) ester&#xff0c;CoroNa Green, AM&#xff0c;Sodium indicator 钠离子指示剂&#xff08;荧光探针&#xff09;&#xff0c;具有良好的细胞膜穿透能力&#xff0c;能够检测到细胞内钠离子的微小…

Redis(二)(实战篇)

查漏补缺 1.线程池 概述 : 提到池&#xff0c;大家应该能想到的就是水池。水池就是一个容器&#xff0c;在该容器中存储了很多的水。那么什么是线程池呢&#xff1f;线程池也是可以看做成一个池子&#xff0c;在该池子中存储很多个线程。 线程池存在的意义&#xff1a; 系…

go并发编程-介绍与Goroutine使用

1. 并发介绍 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中的多个…

排序之计数排序

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

Java基础 集合(一)Collection与Iterator Iterable迭代器详解以及集合在for循环下如何删除

目录 简介 Iterator和Iterable for循环删除问题 for-each下删除数据 解决方法 for下删除数据 解决方法 前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们往往容易陷入工作的…

非鸿蒙官方低代码源码生成器

介绍 鸿蒙低代码可视化开发神器快速对鸿蒙ArkUI生成源码&#xff0c;结合类似小程序类似设计&#xff0c;页面设计底部菜单&#xff0c;支持宫格组件、轮播图、图文列表、图片组件、文本内容组件&#xff0c;快速对接第三方HttpApi。通过鸿蒙扩展axios扩展库加载数据源&#x…

众星素颜出镜影协大会,真实状态引发热议,陈道明备受赞誉。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 岁末之际&#xff0c;电影家协会盛大集结&#xff0c;众星璀璨…

[JAVA数据结构] 二叉树 - 详解

目录 (一) 树形结构 1. 树的概念与结构 2. 树的表示形式 (二) 二叉树 1. 二叉树的概念 2. 两种特殊的二叉树 3. 二叉树的性质 4. 二叉树的存储 5. 二叉树的遍历 (1) 前序遍历 (2)中序遍历 (3)后序遍历 6. 二叉树的基本操作 - 模拟实现 (一) 树形结构 1. 树的概念与…