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遍历目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python内存监控工具memory_profiler和guppy的用法详解

    python内存监控工具memory_profiler和guppy的用法详解

    这篇文章主要介绍了python内存监控工具memory_profiler和guppy的用法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • python PaddleSpeech实现婴儿啼哭识别

    python PaddleSpeech实现婴儿啼哭识别

    这篇文章主要为大家介绍了python PaddleSpeech实现婴儿啼哭识别操作详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • python使用Pybind11扩展c++的实现

    python使用Pybind11扩展c++的实现

    Pybind11是一个轻量级的C++库,旨在无缝地将C++代码绑定到Python,本文主要介绍了python使用Pybind11扩展c++的实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • Python 多进程、多线程效率对比

    Python 多进程、多线程效率对比

    这篇文章主要介绍了Python 多进程、多线程的效率对比,帮助大家选择适合的技术,感兴趣的朋友可以了解下
    2020-11-11
  • Python实现嵌套列表去重方法示例

    Python实现嵌套列表去重方法示例

    人生苦短,早用Python。python可以说2017比较火的一个语言了,下面这篇文章主要给大家介绍了关于利用Python实现嵌套列表去重的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • Python类型转换的魔术方法详解

    Python类型转换的魔术方法详解

    这篇文章主要介绍了Python类型转换的魔术方法详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Python cookbook(数据结构与算法)实现优先级队列的方法示例

    Python cookbook(数据结构与算法)实现优先级队列的方法示例

    这篇文章主要介绍了Python cookbook(数据结构与算法)实现优先级队列的方法,结合实例形式分析了Python中基于给定优先级进行队列元素排序的相关操作技巧,需要的朋友可以参考下
    2018-02-02
  • 利用Pandas和Numpy按时间戳将数据以Groupby方式分组

    利用Pandas和Numpy按时间戳将数据以Groupby方式分组

    这篇文章主要介绍了利用Pandas和Numpy按时间戳将数据以Groupby方式分组,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 如何在sublime编辑器中安装python

    如何在sublime编辑器中安装python

    这篇文章主要介绍了如何在sublime编辑器中安装python,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 利用python-docx模块写批量生日邀请函

    利用python-docx模块写批量生日邀请函

    这篇文章主要为大家详细介绍了利用python-docx模块批量生日邀请函,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08

最新评论