首页 > 解决方案 > os.walk() 函数给出停止迭代错误

问题描述

import tkinter as tk

from tkinter import *
import os

master = tk.Tk()
listbox=Listbox(master,selectmode=MULTIPLE,width=20,height=10,font=("Calibri", 12),exportselection=0)
listbox.pack(side=LEFT,fill="y")

tk.Label(master, text="Enter Folder Path ").pack(fill=tk.X,padx=120)

e1 = tk.Entry(master,width=120)
e1.pack(fill=tk.X)

path=e1.get()
folders=sorted(next(os.walk(self.path))[1],key=int)
listbox.insert(END,*self.folders)

我正在尝试加载listbox目录中的子文件夹名称。运行此代码时会弹出以下错误:

folders=sorted(next(os.walk(self.path))[1],key=int)
StopIteration

有人可以让我知道在这种情况下可以做什么吗?我知道这个问题是由于os.walk功能而出现的。

标签: pythonpython-3.xos.walk

解决方案


发生这种情况的原因之一是您尝试浏览的文件夹不存在。

尝试检查中的值self.path是否确实指向可访问的目录。


推荐阅读