我的gui当前有一个组合框,可以选择四个不同的文件位置。选定后,该目录中的每个文件都将显示在列表框中:
def ComboBox(self, event):
current = self.buttonChoice.current()
if (current == 0):
self.lb.delete(0, END)
for i in range(0, length1):
self.lb.insert(END, self.files1[i])
elif (current == 1):
self.lb.delete(0, END)
sys.path.insert(0, sys.path[0]+ "\\folder1")
for i in range(0, length2):
self.lb.insert(END, self.files2[i])
elif (current == 2):
self.lb.delete(0, END)
sys.path.insert(0, sys.path[0]+ "\\folder2")
for i in range(0, length3):
self.lb.insert(END, self.files2[i])
elif (current == 3):
self.lb.delete(0, END)
sys.path.insert(0, sys.path[0]+ "\\folder3")
for i in range(0, length4):
self.lb.insert(END, self.files4[i])
但是,我的路径不是最优的,因为函数不会返回父目录,而是卡在该文件夹中(例如,如果current==1,则目录将位于…\folder1)。为了让它工作,我需要在每个语句的末尾向下移动一个目录。我看了相关的问题,发现了os.chdir('..')
。出于某种原因,我很难实现这一点。关于如何在每条语句末尾下移一个目录的任何想法。你知道吗
实际上,您应该使用
os.chdir
,而不是sys.path.insert
。你知道吗要给你一个完整的答案,你需要看看你班上的其他同学。更具体地说,我们必须知道
self.lb
和self.files
中有什么,以及填充它的逻辑。你知道吗这个怎么样?你知道吗
或者按照注释中的建议,以递归方式实现
os.path.dirname()
,如下所示:如果不需要设置要返回的文件夹数(
step
在上面的示例中),只需执行os.path.dirname(filename)
相关问题 更多 >
编程相关推荐