我有以下几点:
def crawl(rootdir):
for dir, subdir, files in os.walk(rootdir):
for file in files:
print "file found: %s" % file`
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果我在一个不存在的 rootdir 上调用它,我应该得到一个错误。相反,它似乎悄悄地失败了。我不太关心如何解决这个问题(尽管对 Pythonic 方法的任何评论都会有所帮助),而更多地了解它为什么会发生。
你读过文档吗?引用:
“默认情况下,忽略 listdir() 调用的错误。如果指定了可选参数 onerror,它应该是一个函数;它将使用一个参数调用,一个 OSError 实例。它可以报告错误以继续执行,或引发异常以中止遍历。请注意,文件名可用作异常对象的文件名属性。”
理解其背后的基本原理也是微不足道的:选择发生错误时的处理方式要灵活得多,因为listdir并非所有应用程序都如此对待错误。
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |