python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python遍历目录

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

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

您可能感兴趣的文章:
阅读全文