Python实现遍历目录的两张方法总结

 更新时间:2024年02月01日 09:14:04   作者:白客小李666  
我们有时想直接查看文件夹里的所有文件,但使用正常的方法太麻烦了,于是本文开发出了两个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界面反馈结果,其中第二种功能更加强大,任何文件夹,无论多大,都可遍历

到此这篇关于Python实现遍历目录的两张方法总结的文章就介绍到这了,更多相关Python遍历目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • tensorflow与numpy的版本兼容性问题的解决

    tensorflow与numpy的版本兼容性问题的解决

    这篇文章主要介绍了tensorflow与numpy的版本兼容性问题的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 删除目录下相同文件的python代码(逐级优化)

    删除目录下相同文件的python代码(逐级优化)

    让我们来分析一下这个问题:首先,文件个数非常多,手工查找是不现实的,再说,单凭我们肉眼,在几千张图片里面找到完全相同的难度也是很大的
    2012-05-05
  • python求解水仙花数的方法

    python求解水仙花数的方法

    这篇文章主要介绍了python求解水仙花数的方法,较为详细的分析了水仙花数问题的概念与对应解决方法的实现技巧,需要的朋友可以参考下
    2015-05-05
  • python tqdm用法及实例详解

    python tqdm用法及实例详解

    在本篇文章里小编给大家整理的是一篇关于python tqdm用法及实例详解内容,有需要的朋友们可以学习下。
    2021-06-06
  • Python实现Harbor私有镜像仓库垃圾自动化清理详情

    Python实现Harbor私有镜像仓库垃圾自动化清理详情

    这篇文章主要介绍了Python实现Harbor私有镜像仓库垃圾自动化清理详情,文章围绕主题分享相关详细代码,需要的小伙伴可以参考一下
    2022-05-05
  • Python multiprocessing模块中的Pipe管道使用实例

    Python multiprocessing模块中的Pipe管道使用实例

    这篇文章主要介绍了Python multiprocessing模块中的Pipe管道使用实例,本文直接给出使用实例,需要的朋友可以参考下
    2015-04-04
  • Python返回真假值(True or False)小技巧

    Python返回真假值(True or False)小技巧

    这篇文章主要介绍了Python返回真假值(True or False)小技巧,本文探讨的是最简洁的条件判断语句写法,本文给出了两种简洁写法,需要的朋友可以参考下
    2015-04-04
  • pytorch中节约显卡内存的方法和技巧

    pytorch中节约显卡内存的方法和技巧

    显存不足是很多人感到头疼的问题,毕竟能拥有大量显存的实验室还是少数,而现在的模型已经越跑越大,模型参数量和数据集也越来越大,所以这篇文章给大家总结了一些pytorch中节约显卡内存的方法和技巧,需要的朋友可以参考下
    2023-11-11
  • Python socket实现的简单通信功能示例

    Python socket实现的简单通信功能示例

    这篇文章主要介绍了Python socket实现的简单通信功能,结合实例形式分析了Python socket通信的相关概念、原理、客户端与服务器端实现技巧以及socketserver模块多并发简单实现方法,需要的朋友可以参考下
    2018-08-08
  • Python+Appium实现自动化测试的使用步骤

    Python+Appium实现自动化测试的使用步骤

    这篇文章主要介绍了Python+Appium实现自动化测试的使用步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03

最新评论