未处理stopIteration的os.walk错误

RaviTej310

我已经编写了一个python脚本,并想使用eric ide对其进行调试。当我运行它时,弹出错误提示unhandled StopIteration

我的代码段:

datasetname='../subdataset'
dirs=sorted(next(os.walk(datasetname))[1])

我是python的新手,所以我真的不知道如何解决这个问题。为什么会弹出此错误,我该如何解决?

沉默的

os.walk将在目录树中生成文件名,将其向下滚动。它将返回每个目录的内容。由于它是生成器,因此StopIteration在没有更多要迭代的目录时将引发异常。通常,当您在for循环中使用它时,您看不到异常,但在这里next直接调用

如果将不存在的目录传递给它,它将立即引发异常:

>>> next(os.walk('./doesnt-exist'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

您可以修改代码以使用for循环而不是循环,next这样您就不必担心该异常:

import os

for path, dirs, files in os.walk('./doesnt-exist'):
    dirs = sorted(dirs)
    break

另一个选项是使用try/except捕获异常:

import os

try:
    dirs = sorted(next(os.walk('./doesnt-exist')))
except StopIteration:
    pass # Some error handling here

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

Angular 1.6.0:“可能未处理的拒绝”错误

来自分类Dev

捕获Scala期货中未处理的错误

来自分类Dev

节点js +错误:监听EADDRINUSE +未处理的“错误”事件

来自分类Dev

Python错误os.walk IOError

来自分类Dev

gulp-sass错误:管道中未处理的流错误

来自分类Dev

通过测试可能未处理的错误

来自分类Dev

节点+ Express:未处理的ECONNRESET错误

来自分类Dev

Gulp /管道中未处理的流错误

来自分类Dev

os.walk()不会在Python中引发任何错误或结果

来自分类Dev

IO异常是未处理的错误

来自分类Dev

无法安装iPhone未处理的锁定错误

来自分类Dev

使用os.walk后,join抛出startswitherror错误

来自分类Dev

斯威夫特2:“错误未处理”

来自分类Dev

严重:延迟中未处理的错误:

来自分类Dev

cordova-splash无法处理未处理的错误事件

来自分类Dev

未处理stopIteration的os.walk错误

来自分类Dev

Sass未处理的错误事件

来自分类Dev

发生未处理的低级错误

来自分类Dev

捕获块未处理错误

来自分类Dev

未处理的承诺拒绝:模板解析错误:

来自分类Dev

未处理的拒绝错误 - 骑士

来自分类Dev

node.js 中未处理的错误

来自分类Dev

未处理的拒绝类型错误:sequalize

来自分类Dev

请求 POST Loopback JS 的未处理错误

来自分类Dev

Place API 错误:未处理的异常

来自分类Dev

C# 抛出未处理的异常错误

来自分类Dev

吞咽未处理的错误 182

来自分类Dev

os.walk() 错误 - 解包的值太多

来自分类Dev

错误:用户代码未处理 XmlException