效果如下图:
# 文件夹显示树状结构
import tkinter
from tkinter import ttk
import os
class TreeWindow(tkinter.Frame):
def __init__(self,master,path):
frame = tkinter.Frame(master)
frame.pack()
self.tree = ttk.Treeview(frame)
self.tree.pack()
root = self.tree.insert("","end",text=self.getlastPath(path),open=True)
self.loadTree(root,path)
def loadTree(self,parent,path):
for filepath in os.listdir(path):
#文件的绝对路径
abs = os.path.join(path,filepath)
#插入树枝
treey = self.tree.insert(parent,"end",text=self.getlastPath(filepath))
#判断是否是目录,是目录再去添加树枝,使用递归
if os.path.isdir(abs):
self.loadTree(treey,abs)
#求文件的最后一个名字
def getlastPath(self,path):
pathList = os.path.split(path)
return pathList[-1]
#创建主窗口
win = tkinter.Tk()
win.title("主界面")
win.geometry("300x300")
path = "D:\\Program Files"
treewin = TreeWindow(win,path)
win.mainloop()