Python-使用tkinter以及模仿栈的深度遍历

xiaoxiao2021-02-28  61

效果就是将一个目录中的目录或内容用tkinter的树状数据的界面显示出来,我采用了深度遍历, 如果不是很了解的可以看我上一条博客,关于目录的三种遍历方式http://blog.csdn.net/qq_38105596/article/details/76402732 效果图如: import tkinter from tkinter import ttk import os win = tkinter.Tk() win.title("我是文件夹") win.geometry("400x400+200+10") tree = ttk.Treeview(win) tree.pack() # tkinter的树状插入目录的语法 # treeF1 = tree.insert("", 0, "中国", text="中国ch", values=(1)) # 深度遍历 def getFiles(path): stack = [] stack.append(path) tdir = "" pathList = [] while len(stack) != 0: # 获取文件路径 dirPath = stack.pop() # 获取文件列表 dirList1 = os.listdir(dirPath) # t1 = "" t = True for fileName in dirList1: # 每个文件或目录的绝对路径 fileAbspath = os.path.join(dirPath, fileName) if os.path.isdir(fileAbspath): print("目录:", fileName) pathList.append(fileAbspath) for sk in pathList: print("sk = ", sk) if fileAbspath == os.path.join(sk, fileName): print("========") print(fileAbspath) tx = tree.insert(sk, 2, fileAbspath, text=fileName) t = False break if t: t2 = tree.insert("", 1, fileAbspath, text=fileName) stack.append(fileAbspath) # print("目录:",fileAbspath) else: print("文件:", fileName) print("tdir = ", tdir) print("fileAabspath = ", fileAbspath) print("join = ", os.path.join(tdir, fileName)) for sk1 in pathList: print("sk1 = ", sk1) if fileAbspath == os.path.join(sk1, fileName): print("========") print(fileAbspath) tx = tree.insert(sk1, 2, fileAbspath, text=fileName) t = False break if t: t2 = tree.insert("", 1, fileAbspath, text=fileName) getFiles(r"写上自己要遍历的目录的绝对路径") win.mainloop()
转载请注明原文地址: https://www.6miu.com/read-45797.html

最新回复(0)