Ján*_*nes 1 python exception os.walk
我到处搜索,但找不到关于 os.walk(onerror) 如何工作的解释。
os.walk 默认忽略 listdir() 错误,但我需要至少收到警报,最好是导致此错误的目录路径。我应该如何建立这个论点?
谢谢你的帮助。
错误处理程序应该是可调用的。它将用一个参数(异常实例)来调用。
def walk_error_handler(exception_instance):
print("uh-oh!") # you probably want to do something more substantial here..
for root, dirs, files in os.walk(dirname, onerror=walk_error_handler):
...
Run Code Online (Sandbox Code Playgroud)
os.walk默认情况下忽略错误是设计使然。这允许遍历继续遍历其他目录,例如,即使在遍历中遇到的一个子目录由于权限不足而无法列出。
在处理异常实例时,您感兴趣的所有信息可能都包含在exception_instance.args和 中type(exception_instance)。由于它是一个OSError(或子类型),因此errno将是一个有用的属性。
您可以与 stdlib 模块的常量进行比较errno。例如,权限被拒绝是errno.EACCES(13)。/root如果您尝试以普通用户身份列出,这就是您会收到的错误。
| 归档时间: |
|
| 查看次数: |
3209 次 |
| 最近记录: |