使用python tkinter以目录树的形式实现一个目录的
遍历
import os
from tkinter import *
from tkinter.ttk import *
def createDirTree():
#获取用户输入的目录,E:\python作业2
dir_name=entry.get()
#根据目录创建目录树
tree=Treeview(win,columns=("dir"))
tree.grid(row=2,columnspan=2)
#定义每一列的标题
tree.heading("#0",text="目录",anchor=W)#w为左对齐
# tree.heading("dir",text="文件名",anchor=W)
#初始菜单,为用户输入的目录
createChildDir(dir_name,tree)
#递归创建所有子目录
def createChildDir(path,tree):
#创建父级目录
parent_dir=path.split('\\')[-1]
first_dir=tree.insert("",END,text=parent_dir)
for item in getChildDir(path):
tree.insert(first_dir,END,values=(item))
new_path=path+'\\'+item
# child_dir=new_path.split('\\')[-1]
if os.path.isdir(new_path):
createChildDir(new_path,tree)
#获取下级目录用来设置子菜单
def getChildDir(path):
dirs=os.listdir(path)
print('dirs:',dirs)
return dirs
#输入目录
# direct=input("请输入目录:")
# dirs=os.listdir(direct)#目录解析出来是一个列表
# print(dirs)
#创建目录菜单
win=Tk()
win.geometry("400x400")
win.title('遍历目录下的文件')
label=Label(win,text="请输入你想遍历的目录:")
entry=Entry(win)
label.grid(row=0,column=0)
entry.grid(row=0,column=1)
btn_assure=Button(win,text='确定',command=createDirTree)
sep=Separator(win,orient=HORIZONTAL)
btn_assure.grid(row=1,columnspan=2,)
win.mainloop()
实现的效果如图:
实现的效果不是很好,虽然可以遍历目录,但是只能到下一级目录。有能力的小伙伴可以好好研究实现一个!