我们有时想直接查看文件夹里的所有文件,但使用正常的方法太麻烦了,于是我开发出了两个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界面反馈结果,其中第二种功能更加强大,任何文件夹,无论多大,都可遍历
望大家喜欢(❤ ω ❤)