您的位置:首页 > 编程语言 > Python开发

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

2017-08-06 11:22 351 查看
效果就是将一个目录中的目录或内容用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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: